sql에서 savepoint는 트랜잭션 내에서 중간 지점을 설정하는데 사용되는 TCL의 일부입니다. 트랜잭션 내에서 문제가 발생했을 때, savepoint를 사용하면 전체 트랜잭션을 롤백하는 대신 해상 지점까지만 롤백할 수 있습니다.
다음은 savepoint의 기본적인 사용법입니다.
1. savepoint 생성
SAVEPOINT savepoint_name;
이 명령은 트랜잭션 내에서 savepoint_name이라는 이름의 savepoint를 설정합니다.
2. savepoint로 롤백
ROLLBACK TO savepoint_name;
이 명령은 트랜잭션을 savepoint_name으로 설정된 savepoint까지 롤백합니다.
savepoint_name 이후의 모든 변경사항은 취소됩니다.
3. savepoint 제거
RELEASE SAVEPOINT savepoint_name;
이 명령은 savepoint_name이라는 savepoint를 제거합니다. 해당 savepoint로 롤백할 수 없게 됩니다.
다음은 savepoint를 사용한 예제입니다.
START TRANSACTION;
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
SAVEPOINT sp1;
UPDATE table_name SET column1 = new_value WHERE condition;
-- 문제가 발생하면
ROLLBACK TO sp1;
COMMIT;
위 예제에서 만약 update문이 문제를 일으키면, ROLLBACK TO sql; 명령을 사용하여 sql savepoint 이수의 모든 변경사항을 취소할 수 있습니다. 그러나 이전에 수행된 INSERT 문은 롤백되지 않습니다. 마지막으로 COMMIT 명령을 사용하여 트랜잭션에서 수행된 모든 변경사항을 데이터베이에 적용합니다.
[SQLD] NVL (0) | 2023.05.20 |
---|---|
[SQLD] Index (0) | 2023.05.20 |
[SQLD] TCL query (0) | 2023.05.14 |
[SQLD] COALESCE 함수 (0) | 2023.05.08 |
[SQLD] to_char 함수 (0) | 2023.04.30 |
댓글 영역