으나님의 잡다한 개발상식
(SQL) SAVEPOINT 본문
- SAVEPOINT는 트랜잭션을 작게 분할하여 관리하는 것으로 SAVEPOINT를 사용하면 지정된 위치까지만 트랜잭션을 ROLLBACK할 수 있다.
- 만약 그냥 ROLLBACK을 실행하면 SAVEPOINT와는 관계없이 변경된 모든 데이터가 취소된다.
SAVEPOINT 사용할 세이브포인트 명칭
ROLLBACK TO 돌아갈 세이브포인트 명칭
- SAVEPOINT가 동일할 때 ROLLBACK을 수행하면 최초의 SAVEPOINT 지점으로 ROLLBACK된다.
INSERT INTO TAB1 VALUES(1); /*COL1 : 1 */
INSERT INTO TAB1 VALUES(2); /*COL1 : 1,2 */
SAVEPOINT SV1; /*COL1 : 1,2 */
UPDATE TAB1 SET COL1=4 WHERE CO1=2; /*COL1 : 1,4 */
SAVEPOINT SV1; /*COL1 : 1,4 */
DELETE TAB1 WHERE COL1>=2; /*COL1 : 1 */
ROLLBACK TO SV1; /*COL1 : 1,2 맨 처음 지정한 SV1으로 ROLLBACK*/
INSERT INTO TAB1 VALUES(3); /*COL1 : 1,3 */
SELECT MAX(COL1) FROM TAB1; /*MAX(COL1) : 3 */
'SQL' 카테고리의 다른 글
(SQL) INTERSECT 연산 (0) | 2020.05.26 |
---|---|
(SQL) JOIN 종류 (0) | 2020.05.26 |
(SQL) DCL(DATA CONTROL LANGUAGE) (0) | 2020.05.25 |
(SQL) WITH 구문 (0) | 2020.05.25 |
(SQL) ROWID (0) | 2020.05.25 |