세이브 포인트

Savepoint

세이브포인트는 세이브포인트가 생성되기 전에 트랜잭션에서 수행된 작업에 영향을 주지 않고 트랜잭션 내에서 "롤백"할 수 있는 포인트를 표시함으로써 관계형 데이터베이스 관리 시스템 내에서 하위 트랜잭션(네스트된 트랜잭션이라고도 함)을 구현하는 방법입니다.하나의 트랜잭션 내에 여러 개의 세이브 포인트가 존재할 수 있습니다.저장점은 데이터베이스 응용 프로그램에서 복잡한 오류 복구를 구현하는 데 유용합니다.복수의 스테이트먼트 트랜잭션 중에 에러가 발생했을 경우, 애플리케이션은 트랜잭션 전체를 중단하지 않고 (세이브 포인트로 롤백함으로써) 에러로부터 회복할 수 있습니다.

세이브 포인트를 선언하려면SAVEPOINT name진술.세이브 포인트가 선언된 후 이루어진 모든 변경은 다음 명령어를 발행하여 취소할 수 있습니다.ROLLBACK TO SAVEPOINT name명령어를 입력합니다.발행RELEASE SAVEPOINT name는 이름 있는 세이브 포인트를 폐기합니다만, 그 이외에는 영향을 주지 않습니다.명령어 발행ROLLBACK또는COMMIT또한 메인 트랜잭션 시작 이후 생성된 저장점도 모두 폐기됩니다.

Savepoints는 SQL 표준에서 정의되며 Postgre를 포함한 확립된 모든 SQL 관계형 데이터베이스에서 지원됩니다.SQL, Oracle Database, Microsoft SQL Server, MySQL, IBM Db2, SQLite(3.6.8 이후), Firebird, H2 Database Engine Informix(11.50xC3 이후)가 있습니다.