반응형
커밋된 트랜잭션 롤백
할 수 있는 방법이 있습니까?rollback
에 있어서의 헌신적인 거래.oracle 11g
내가 만든 것은delete from table
db에서 그리고 그것을 커밋, 나는 지금 하고 싶습니다.rollback
확약된 변화그것을 할 수 있는 방법이 있습니까?
이미 커밋된 항목은 롤백할 수 없습니다.이 경우 가장 빠른 옵션 중 하나로 행을 삭제한 테이블에 대해 플래시백 쿼리를 실행한 후 다시 삽입할 수 있습니다.다음은 간단한 예입니다.
참고: 이 작업의 성공 여부는 다음 값(기본값 900초)에 따라 달라집니다.undo_retention
매개 변수 - 실행 취소 정보가 실행 취소 테이블 공간에 유지되는 기간(자동으로 줄일 수 있음)입니다.
/* our test table */
create table test_tb(
col number
);
/* populate test table with some sample data */
insert into test_tb(col)
select level
from dual
connect by level <= 2;
select * from test_tb;
COL
----------
1
2
/* delete everything from the test table */
delete from test_tb;
select * from test_tb;
no rows selected
삭제된 행을 뒤로 삽입:
/* flashback query to see contents of the test table
as of specific point in time in the past */
select * /* specify past time */
from test_tb as of timestamp timestamp '2013-11-08 10:54:00'
COL
----------
1
2
/* insert deleted rows */
insert into test_tb
select * /* specify past time */
from test_tb as of timestamp timestamp '2013-11-08 10:54:00'
minus
select *
from test_tb
select *
from test_tb;
COL
----------
1
2
이 쿼리 사용
SELECT * FROM employee AS OF TIMESTAMP
TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')
그런 다음 삭제 테이블에 다음과 같이 삽입합니다.
INSERT INTO employee (SELECT * FROM employee AS OF TIMESTAMP
TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS'));
언급URL : https://stackoverflow.com/questions/19853150/rollback-a-committed-transaction
반응형
'programing' 카테고리의 다른 글
jQuery 액세스 입력 숨김 값 (0) | 2023.07.29 |
---|---|
파이썬에서 긴 다중 줄 문자열을 한 줄씩 읽는 방법 (0) | 2023.07.29 |
선형 레이아웃을 스크롤 가능하게 하려면 어떻게 해야 합니까? (0) | 2023.07.29 |
도커 이미지 "레이어"란 무엇입니까? (0) | 2023.07.29 |
VSCODE에서 "sudo"로 프로그램을 디버깅하는 방법 (0) | 2023.07.24 |