트랜잭션이란?

현 시점을 저장하여 쿼리문 작업중 실수를 대비한 보험으로 생각하면 이해가 쉽다.

 

    SAVEPOINT sp1;
    --현 시점 저장
    --sp1은 세이브포인트의 명칭일 뿐이다 aa와 같이 임의로 주어도 무관
    
    DELETE FROM 테이블명 WHERE = 조건;
    --특정 테이블에서 조건을 충족하는 row(데이터)를 제거
    
    COMMIT;
    --삭제를 희망하는 데이터가 정상처리 되었다면 커밋하여 데이터의 상태를 유지
    
    ROLLBACK;
    /*조건에 오타가 있거나, 줄바꿈 등의 이유로 조건을 명시하지 않은 경우
    원치 않는 데이터 혹은 모든 데이터가 제거될 수 있다.
    이때, 롤백을 이용해서 보험을 타먹을 때이다.*/
    --지정한 시점으로 데이터가 원상복구 된다.

 

주의)

롤백or커밋을 한 시점 이후에 트랜잭션(세이브포인트)은 소실되므로,

새로운 트랜잭션을 명시해주어야 한다.

 

 

Oracle

--SAVEPOINT sp1;
--ROLLBACK;
--COMMIT;

MSSQL

--BEGIN TRAN;
--ROLLBACK;
--COMMIT;
728x90
반응형

+ Recent posts