t1 이상의 t3에서 t10까지 유효성 검사가 실패하면 t2 테이블 삽입이 롤백되어야합니다.
그래서 당신은 T3..T10에 삽입하면 전체 트랜잭션 T1으로, 초기 점 즉, 어떤 삽입을 롤백하고 T2는 롤백해야 할 동안 아무것도 잘못되면 의미한다.
그런 다음 세이브 포인트를 작성하는 이유는 무엇입니까? ROLLBACK을 발급하면 모든 트랜잭션, 즉 모든 트랜잭션이 롤백됩니다.
어쨌든 정말로 필요한 경우 T1에서 트랜잭션을 시작하기 전에 SAVEPOINT를 먼저 작성하십시오. 이제 유효성 검사에 실패하면 ROLLBACK TO SAVEPOINT으로 전체 트랜잭션을 롤백합니다.
ROLLBACK TO SAVEPOINT는 해당 SAVEPOINT가 해당 저장 점까지 롤백 될 때 발생한 트랜잭션을 의미합니다. 예를 들어
,
SQL> SAVEPOINT A
SQL> INSERT INTO TEST VALUES (1,'Savepoint A');
1 row inserted.
SQL> SAVEPOINT B
SQL> INSERT INTO TEST VALUES (2,'Savepoint B');
1 row inserted.
SQL> ROLLBACK TO B;
Rollback complete.
SQL> SELECT * FROM TEST;
ID MSG
-------- -----------
1 Savepoint A
Example source
삽입물이 – Sathya
@Sathya 실패하면 T2 세이브 포인트에 T2에서 세이브 포인트 및 롤백을 설정 무엇 유효성 검사가 T8에 실패 할 경우, 윌이 롤백 7 테이블 삽입 세이브 포인트를 t2에 설정하면? – developer
예. 그러나 T2 이후에 세이브 포인트를 작성하면 T2 이전에 롤백되지 않습니다. –