본문 바로가기

오라클

트랜잭션

-- 트랜잭션

  트랜잭션(transaction)은 하나의 논리적 작업 단위로 수행되는 일련의 작업으로 테이블에 INSERT, UPDATE, DELETE 문으로

  지시하고, COMMIT을 실행하면 모든 변경 사항이 영구히 데이터베이스에 저장되며, ROLLBACK은 마지막 COMMIT이나

  ROLLBACK 이후의 변경사항을 취소하고 데이터베이스를 원래의 상태로 되돌려준다. 즉, 트랜잭션에서 데이터베이스를 변경하라는

  명령이 COMMIT이고, COMMIT전까지 변경된 것을 되돌리는 것이 ROLLBACK이다.

  

  --COMMIT

  --ROLLBACK

  --SAVEPOINT

    -- transaction 내의 한 시점을 표시한다.

    -- ROLLBACK TO SAVEPOINT 명령어로 표시 지점까지 ROLLBACK하는데 쓰인다.

    ;

 

    ------------------------------------------

    CREATE TABLE test AS

      SELECT num, name, city FROM insa

        WHERE num<=1010;

        

    SELECT * FROM tab;

    

    INSERT INTO test(num, name, city) VALUES(2000,'이이이','경기');

    SELECT * FROM test;

    

    SAVEPOINT a;

    

    UPDATE test SET city='세종' WHERE num=1001;

    SELECT * FROM test;

--아직 트랜잭션을 완료하지 않은 상태이기 때문에 여기까지 한 후에 sqlplus에서 확인해보면 수정사항이 적용되어있지 않다

    

    ROLLBACK TO a;

-- a포인트 이후에 작업한것은 모두 취소(여기서는 세종으로 수정된것이 취소되었다)

'오라클' 카테고리의 다른 글

프로시져(Stored Procedure)  (0) 2013.06.04
PL/SQL  (0) 2013.06.04
inline view (또는 subquery), WITH  (0) 2013.06.03
데이터 삭제  (0) 2013.06.01
데이터 수정하기  (0) 2013.06.01