ํ๋ก์ ํธ ์งํ ์ค
1.์ค๋ณต๋ ์ํ์ด ๋ฉ์ธํ๋ฉด์ ๋จ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํด์ DB ์ ๋ฆฌ๋ฅผ ๋งก๊ฒ๋์๊ณ , ์ฟผ๋ฆฌ๋ฌธ์ผ๋ก ํด๋น ํ
์ด๋ธ์ ์๋ ๋ฐ์ดํฐ๋ค์ ์ ๋ฆฌ์์ํจ.
2. 'ORA-02292: ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ด ์๋ฐฐ๋์์ต๋๋ค- ์์ ๋ ์ฝ๋๊ฐ ๋ฐ๊ฒฌ๋์์ต๋๋ค.' ๋ผ๋ ์ค๋ฅ๊ฐ ๋จ๋ฉฐ ํด๋น ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋์ง ์์. (ํด๋นํ
์ด๋ธ์ ์ฌ๋ฌ ์์ํ
์ด๋ธ์ด ์ฐธ์กฐํ๊ณ ์์๊ธฐ ๋๋ฌธ์ด๋ค..)
3. ๊ทธ๋์ ์ฟผ๋ฆฌ๋ฌธ์ ํตํด ์ฌ๋ฌ ํ
์ด๋ธ์ ์ด๊ฒ์ ๊ฒ ์ญ์ ๋ฅผ ํ๋ค๊ฐ , ์ ํ ์๊ด์๋ ์์์ ์ฉ(?)๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋์ค์๋ฅผ ์ ์ง๋ฆ... (์ด์ ํด๋น ํ
์ด๋ธ๋ก๋ถํฐ ์๋ํ๋ ๋ชจ๋ ๋์์ ์ค๋ฅ๋ฐ์... ใ
)
์ฐพ์๋ณด๋ ์ญ์ ํ ๋ฐ์ดํฐ๋ฅผ ์๊ฐ์ ๊ธฐ์ค์ผ๋กํด์ ํด๋น ํ
์ด๋ธ์ ๋ณต๊ตฌํ๋ ๋ฐฉ์์ด ์์๋ค!
๋ฐ์ดํฐ๋ฅผ ์ค์๋ก ์ญ์ (DELETE) ํ๋ค๋ฉด, TIMESTAMP๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ฌ ๋ณต๊ตฌํ ์ ์๋ค.
์ค๋ผํด 9i Release 2๋ถํฐ Flashback์ด๋ผ๋ ๊ธฐ๋ฅ์ด ์๊ฒผ๋๋ฐ, ์ผ์ข
์ ํด์งํต์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค๊ณ ํ๋ค.
Flashback์ ์ฌ์ด์ฆ๋งํผ๋ง ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๊ณ ์์ผ๋,
๋ณ๊ฒฝ์ด ์์ฃผ ๋ฐ์ํ๋ ํ
์ด๋ธ์ ๋ณต๊ตฌ ๊ฐ๋ฅํ ์์ ์ด ์งง์ ์ ์๋ค.
SELECT *
FROM test_table AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '10' MINUTE)
WHERE id = '1234'
์์ ์ฟผ๋ฆฌ๋ฅผ ์กฐํํ๋ฉด 10๋ถ ์ด์ ์ ๋ฐ์ดํฐ๊ฐ ์กฐํ๋๋ค.
๋จ์๋ SECOND, MINUTE, HOUR, DAY๋ก ๋ฐ๊ฟ ์ธ ์ ์๋ค.
์ํ๋ ์์ ์ ์๊ฐ์ ์ง์ ์
๋ ฅํ์ฌ ๋ณ๊ฒฝ ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์๋ ์๋ค.
SELECT *
FROM test_table AS OF TIMESTAMP(TO_DATE('2021-08-27 13:10:00', 'YYYY-MM-DD HH24:MI:SS'))
WHERE id = '1234'
์๋ฌด ๋ฌธ์ ์์ด ๋ณต๊ตฌํ์ฌ ๋ค์ ํ
์ด๋ธ ์์ ์ ์งํํ ์ ์์๋ค. ๐ฅณ๐ฅฒ
'๐ป > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB] ๋กํน(Locking) ๋จ์ , ๋กํน๊ณผ ๋ณํ์ฑ, DB ๋กํน ๊ธฐ๋ฒ (0) | 2025.02.26 |
---|---|
[DB] MyBatis vs. JPA (2) | 2024.10.16 |
[DB/OracleDB] SQL๋ฌธ ์กฐํ, ํจ์ ์ ๋ฆฌ (2) | 2024.09.09 |
[DB/OracleDB] Oracle Cloud , DBeaver ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ (2) | 2024.09.08 |