1.     COMMIT

  • COMMITINSERT, UPDATE, DELETE문으로 변경한 데이터를 데이터베이스에 반영함

  • 변경 전 이전 데이터는 잃어버림

  • 다른 모든 데이터베이스 사용자는 변경된 데이터를 볼 수 있음

  • COMMIT이 완료되면 데이터베이스 변경으로 인한 LOCK이 해제 됨(UNLOCK)

  • COMMIT이 완료되면 다른 모든 데이터베이스 사용자는 변경된 데이터를 조작할 수 있음

  • COMMIT을 실행하면 하나의 트랜잭션 과정을 종료 함

  • Oracle 데이터베이스는 암시적 트랜잭션 관리를 함

  • , Oracle 데이터베이스로 트랜잭션을 시작하고 트랜잭션의 종료는 Oracle 데이터베이스 사용자가 COMMIT혹은 ROLLBACK으로 처리 해야 함

*Auto commit

  • SQL*PLUS 프로그램을 정상적으로 종료하는 경우 자동 COMMIT

  • DDL DCL을 사용하는 경우 자동 COMMIT

  • “set autocommit on,”SQL*PLUS에서 실행하면 자동 COMMIT

2.     ROLLBACK

  • ROLLBACK을 실행하면 데이터에 대한 변경 사용을 모두 취소하고 트랜잭션을 종료함

  • INSERT, UPDATE, DELETE문의 작업을 모두 취소함(, 이전에 COMMIT한 곳까지만 복구함)

  • ROLLBACK을 실행하면 LOCK이 해제되고 다른 사용자도 데이터베이스 행을 조작할 수 있음

3.     SAVEPOINT

  • SAVEPOINT는 트랜잭션을 작게 분할해 관리하는 것으로 SAVEPOINT를 사용하면 지정된 위치 이후의 트랜잭션만 ROLLBACK 할 수 있음

  • SAVEPOINT의 지정은 SAVEPOINT <SAVEPOINT>을 실행함

  • 지정된 SAVEPOINT까지만 데이터 변경을 취소하고 싶은 경우는 “ROLLBACK TO<SAVEPOINT>”을 실행함

  • “ROLLBACK”을 실행하면 SAVEPOINT와 관계없이 데이터의 모든 변경사항을 저장하지 않음

+ Recent posts