DB

DB)rollback 과 commit

알 수 없는 사용자 2010. 6. 6. 20:19
rollback; 저장되지 않은 모든 데이터 변경 사항을 취소하고 현재의 트랜잭션을 끝내라는 명령이다. 즉 트랜잭션으로 인한 하나의 묶음처리가 시작되기 이전의 상태로 되돌려지는 것을 말한다.만약 이전에 SAVEPOINT로 지정한 이름이 있으면 그 위치까지 되돌아간다.

commit; 저장되지 않은 모든 데이터를 데이터베이스에 저장하고 현재의 트랜잭션을 종료하라는 명령이다. 즉 정상적으로 처리되어서 확정(실행을 위해서 엔터키를 치는것처럼)한다는 뜻이다. 커밋하면 트랜잭션의 처리과정이 모두 반영되며 하나의 트랜잭션 과정이 끝나게 된다.

자동커밋 : DDL 문에는 CREATE, ALTER, DROP, RENAME, TRUNCATE 등이 있는데 이러한 DDL문은 자동으로 커밋이 발생한다.

savepoint; 현재까지의 트랜잭션을 특정 이름으로 지정하라는 명령이다.

rollback과 commit의 장점

 - 데이터의 일관성을 유지한다.
 - 데이터의 변경을 먼저 본다.
 - 검사하고 바꿔서 하나의 트랜잭션을 만들 수 있다.

commit을 사용하고
여러가지 명령어를 사용하고
rollback를 사용하면 commit했던 곳으로 이동한다.

그런데 savepoint를 사용하면 savepoint로 이동한다.

사용법
savepoint s; - 세이브 포인트를 만든다.
rollback to savepoint s; - 세이브포인트S로 이동한다.


ex1)

ex2)



ex3)