• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    1. START TRANSACTION, COMMIT 및 ROLLBACK 구문
    2. 롤백 할 수없는 문
    3. 암시 적 커밋을 발생시키는 문
    4. SAVEPOINT, ROLLBACK TO SAVEPOINT 및 RELEASE SAVEPOINT 구문
    5. LOCK TABLES 및 UNLOCK TABLES 구문
    6. SET TRANSACTION 구문
    7. XA 트랜잭션
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    7. 데이터베이스 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.3.4 SAVEPOINT, ROLLBACK TO SAVEPOINT 및 RELEASE SAVEPOINT 구문

 SAVEPOINT identifier ROLLBACK [WORK] TO [SAVEPOINT] identifier RELEASE SAVEPOINT identifier 

InnoDB 는 SQL 문 SAVEPOINT , ROLLBACK TO SAVEPOINT , RELEASE SAVEPOINT 외에도 ROLLBACK 옵션 WORK 키워드를 지원합니다.

SAVEPOINT 문은 identifier 의 이름이 명명 된 트랜잭션 세이브 포인트를 설정합니다. 현재의 트랜잭션에 같은 이름의 세이브 포인트가 포함되어 있으면 오래된 세이브 포인트는 삭제되고 새로운 세이브 포인트가 설정됩니다.

ROLLBACK TO SAVEPOINT 문은 트랜잭션을 종료하지 않고 트랜잭션을 지정된 세이브 포인트로 롤백합니다. 세이브 포인트가 설정된 후 현재 트랜잭션이 행의 변경 사항은 롤백 되 돌리지 만, InnoDB 는 세이브 포인트의 후에 메모리에 저장된 행 잠금을 해제하지 않습니다. (새로 삽입 된 행의 경우, 락 정보는 해당 행에 저장되어있는 트랜잭션 ID가 전달됩니다. 잠금이 개별적으로 메모리에 저장되는 것은 아닙니다.이 경우 행 잠금은 Undo 풀려 늘어난다.) 지정된 세이브 포인트보다 후에 설정된 세이브 포인트는 삭제됩니다.

ROLLBACK TO SAVEPOINT 문을 다음 오류를 반환 한 경우, 지정된 이름의 세이브 포인트가 존재하지 않는 것을 보여줍니다.

 ERROR 1305 (42000) : SAVEPOINT identifier does not exist

RELEASE SAVEPOINT 문은 지정된 세이브 포인트를 현재 트랜잭션의 일련의 세이브 포인트에서 제거합니다. 커밋 또는 롤백은 발생하지 않습니다. 그 세이브 포인트가 존재하지 않으면 오류가 발생합니다.

COMMIT 또는 세이브 포인트를 지정하지 ROLLBACK 을 실행하면 현재 트랜잭션의 세이브 포인트가 삭제됩니다.

스토어드 함수가 호출되거나 트리거가 활성화되면 새로운 세이브 포인트 레벨이 생성됩니다. 이전의 수준에있는 세이브 포인트를 사용할 수 없게되므로 새로운 수준의 세이브 포인트와는 경쟁하지 않습니다. 함수 또는 트리거가 종료되면 그 함수 또는 트리거에 의해 생성 된 세이브 포인트는 해제되고 이전의 세이브 포인트 레벨이 복원됩니다.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved