Spring

[Spring] sql delete한 데이터 불러오기

아잠만_ 2024. 8. 7. 10:22

delete한 데이터를 commit을 한 경우

수정할 때 별로 오래되지 않은 경우에는 다시 불러올 수 있음

해당 방법은 과거의 테이블을 불러오면서 그걸 다시 insert시키는 방법이다

insert into 테이블명
select * from 테이블명
as of timestamp (systimestamp - interval 'x' minute);
-- x 분 이전에 존재했던 테이블을 불러온다

예시

-- 테이블 생성
create table member_bak
as
select * from member;

-- 테이블 조회
select * from member_bak

-- rollback 가능, 스키마 구조가 살아있음
delete from member_bak;
commit;

-- 3분전 테이블 데이터 조회 (flashback)
-- 해당 결과는 delete를 수행했을 때만 가능
insert into member_bak
select * from member_bak
as of timestamp (systimestamp - interval '3' minute) ;


-- truncate : rollback불가능, 스키마 구조가 살아있음
truncate table member_bak;

-- drop : rollback불가능, 스키마 구조 사라짐
drop table member_bak;
commit;