트랜잭션이란?
현 시점을 저장하여 쿼리문 작업중 실수를 대비한 보험으로 생각하면 이해가 쉽다.
SAVEPOINT sp1;
--현 시점 저장
--sp1은 세이브포인트의 명칭일 뿐이다 aa와 같이 임의로 주어도 무관
DELETE FROM 테이블명 WHERE = 조건;
--특정 테이블에서 조건을 충족하는 row(데이터)를 제거
COMMIT;
--삭제를 희망하는 데이터가 정상처리 되었다면 커밋하여 데이터의 상태를 유지
ROLLBACK;
/*조건에 오타가 있거나, 줄바꿈 등의 이유로 조건을 명시하지 않은 경우
원치 않는 데이터 혹은 모든 데이터가 제거될 수 있다.
이때, 롤백을 이용해서 보험을 타먹을 때이다.*/
--지정한 시점으로 데이터가 원상복구 된다.
주의)
롤백or커밋을 한 시점 이후에 트랜잭션(세이브포인트)은 소실되므로,
새로운 트랜잭션을 명시해주어야 한다.
Oracle
--SAVEPOINT sp1;
--ROLLBACK;
--COMMIT;
MSSQL
--BEGIN TRAN;
--ROLLBACK;
--COMMIT;
728x90
반응형
'DB' 카테고리의 다른 글
Oracle 중첩DECODE(다중DECODE) (0) | 2021.04.10 |
---|---|
Oracle 조건문 DECODE (0) | 2021.04.09 |
Oracle/MSSQL NULL처리 (0) | 2021.03.18 |
Oracle 요청한 작업을 수행하는 중 오류 발생:IO 오류: The Network Adapter could not establish the connection업체 코드 17002 (0) | 2021.02.10 |