아래 비교 차트의 도움으로 SQL의 Commit 및 ROLLBACK 문의 차이점을 설명합시다.
비교 차트
비교의 근거 | 범하다 | 롤백 |
---|---|---|
기본 | COMMIT는 현재 트랜잭션이 수행 한 수정 내용의 유효성을 검사합니다. | ROLLBACK은 현재 트랜잭션의 수정 사항을 지 웁니다. |
효과 | COMMIT 문의 실행 후에는 트랜잭션을 롤백 할 수 없습니다. | ROLLBACK이 실행되면 데이터베이스는 이전 상태, 즉 트랜잭션의 첫 번째 명령문 실행 이전에 도달합니다. |
발생 | COMMIT은 트랜잭션이 성공적으로 실행될 때 발생합니다. | ROLLBACK은 실행 중간에 트랜잭션이 중단 될 때 발생합니다. |
통사론 | 범하다; | 롤백; |
커밋의 정의
COMMIT 는 트랜잭션의 성공적인 완료를 알리는 SQL 문입니다. 트랜잭션이 인터럽트없이 트랜잭션의 실행을 완료 할 때마다 트랜잭션에 의한 데이터베이스에 대한 수정이 영구적이됩니다. 즉, 데이터베이스는 트랜잭션의 첫 번째 명령문 실행 이전의 상태를 회복 할 수 없습니다.
COMMIT 문의 구문은 다음과 같습니다.
범하다;
트랜잭션의 마지막 명령문이 끝나면 트랜잭션은 부분적으로 커밋 됩니다. 다음으로 복구 프로토콜 은 시스템 장애가 있어도 데이터베이스를 수정할 수 없으므로 수정 내용을 영구적으로 유지합니다. 이것이 확인 되 자마자 트랜잭션의 커밋 포인트 에 도달하고 마지막으로 트랜잭션이 커밋 된 상태가 됩니다. 트랜잭션이 커밋 된 상태가되면 롤백 할 수 없으며 새 트랜잭션이 시작됩니다.
롤백의 정의
COMMIT과 마찬가지로 ROLLBACK 도 SQL 문이며 트랜잭션이 성공적 으로 완료 되지 않았 음을 알립니다. 따라서 트랜잭션은 트랜잭션이 수행 한 변경 사항을 실행 취소 하기 위해 중단 됩니다. ROLLBACK을 실행 한 후에는 현재 트랜잭션에 의해 수행 된 수정이 유지되지 않습니다.
ROLLBACK 구문은 다음과 같습니다.
롤백;
트랜잭션 ROLLBACK은 트랜잭션 실행 중에 오류가 발생하면 필요합니다. 오류는 시스템 장애, 정전, 트랜잭션 문의 오류, 시스템 고장 일 수 있습니다. 정전 또는 시스템 고장의 경우 시스템이 다시 시작될 때 롤백이 발생합니다. ROLLBACK은 COMMIT가 아직 실행되지 않은 경우에만 발생할 수 있습니다.
SQL의 COMMIT와 ROLLBACK의 주요 차이점
- SQL의 COMMIT 및 ROLLBACK 문의 주요 차이점은 COMMIT 문의 실행으로 인해 현재 트랜잭션의 모든 수정 사항이 영구적으로 유지된다는 것입니다. 반면, ROLLBACK을 실행하면 현재 트랜잭션이 수행 한 모든 수정 사항이 지워집니다.
- COMMIT.이 실행되면 트랜잭션에 의해 수행 된 수정은 ROLLBACK이 될 수 없습니다. 그러나 ROLLBACK 문이 실행되면 데이터베이스는 이전 상태가됩니다.
- 트랜잭션 문이 성공적으로 실행되면 COMMIT가 실행됩니다. 그러나 ROLLBACK은 트랜잭션이 성공적으로 실행되지 않을 때 실행됩니다.
결론:
트랜잭션의 변경 사항이 데이터베이스에 영구 저장되도록하려면 트랜잭션이 성공적으로 완료된 후에 COMMIT를 사용하십시오. 트랜잭션이 실행 중 오류가 발생하여 트랜잭션이 수행 한 변경 사항을 취소하려면 ROLLBACK이 사용됩니다.