Start
오라클 commit 잘못 했을때 당황하지 말고 timestamp
k_brown
2024. 10. 4. 17:01
반응형
제목만 봐도 아찔한 상황 이다 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
일어나서는 안될일! 이지만.
그래도 일하다 보면 한번쯤은 있을법한 거라 정리해본다.
--일
SELECT *
FROM CONTENTS_TABLE AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL'1'day)
where 1=1 --이런식으로 where 작성 가능
;
-- 시간
SELECT *
FROM CONTENTS_TABLE AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL'1'hour)
;
--분
SELECT *
FROM CONTENTS_TABLE AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL'30'minute)
;
where 절로 조건을 줘서 조회도 가능하고 day, hour, minute 앞에 값을 바꿔서 조회 가능하다.
그리고 해당 시간 전의 테이블 데이터를 볼 수 있으므로
잘못 update 하고 commit 한 테이블에 바로 수정도 가능하다.
UPDATE CONTENTS_TABLE A SET
(contents_seq
,contents_text
,contents_date) = (
SELECT contents_seq,
contents_text,
contents_date
FROM CONTENTS_TABLE AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL'4'hour) B
WHERE A.contents_seq = B.contents_seq
)
WHERE CONTENTS_SEQ = '10000'
;
이런식으로 조건에 맞는 데이터를 설정하고 원복을 시켜줄 수 있다.
당황하지 말자.
그래도
실수하지 말자.
반응형