• 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.3 암시 적 커밋을 발생시키는 문

이 섹션에 표시된 문 (및 모든 동의어)는 사용자가이 문을 실행하기 전에 COMMIT 을 실행 한 것처럼 현재 세션에서 사용중인 모든 트랜잭션을 암묵적으로 종료 합니다. MySQL 5.5.3의 시점에서는 이러한 진술의 대부분이 실행 후 암시 적 커밋도 발생시킵니다. 자세한 내용은이 섹션의 마지막을 참조하십시오.

  • 데이터베이스 개체를 정의하거나 수정하려면 데이터 정의 언어 (DDL) 문. ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME , ALTER EVENT , ALTER PROCEDURE , ALTER SERVER , ALTER TABLE , ALTER VIEW , CREATE DATABASE , CREATE EVENT , CREATE INDEX , CREATE PROCEDURE , CREATE SERVER , CREATE TABLE , CREATE TRIGGER , CREATE VIEW , DROP DATABASE , DROP EVENT , DROP INDEX , DROP PROCEDURE , DROP SERVER , DROP TABLE , DROP TRIGGER , DROP VIEW , RENAME TABLE , TRUNCATE TABLE .

    ALTER FUNCTION , CREATE FUNCTION 및 DROP FUNCTION 또한 저장 기능 (그러나 UDF 제외)에서 사용 된 경우 암시 적 커밋을 발생시킵니다. ( ALTER FUNCTION 은 스토어드 함수에서만 사용할 수 있습니다.)

    CREATE TABLE 및 DROP TABLE 문은 TEMPORARY 키워드가 사용되는 경우 트랜잭션을 커밋하지 않습니다. (이것은 커밋을 발생시키는 ALTER TABLE 또는 CREATE INDEX 등의 임시 테이블에 대한 다른 작업에는 적용되지 않습니다.) 그러나 암시 적 커미트가 없지만 문 롤백 할 수 없습니다. 즉,이 같은 문을 사용하면 트랜잭션의 원 자성이 침해됩니다. 예를 들어, CREATE TEMPORARY TABLE 을 사용한 후 트랜잭션을 롤백해도 그 테이블은 존재하고 있습니다.

    InnoDB 에서 CREATE TABLE 문은 하나의 트랜잭션으로 처리됩니다. 즉, 사용자가 ROLLBACK 을 실행해도 사용자가 트랜잭션에서 수행 한 CREATE TABLE 문은 되돌릴 수 없습니다.

    CREATE TABLE ... SELECT 임시 테이블 이외의 테이블을 작성하는 경우 명령문이 실행되는 전후에 암시 적 커밋을 발생시킵니다. ( CREATE TEMPORARY TABLE ... SELECT 에 커미트가 없습니다.) 이것은 롤백 한 후 마스터에서 테이블을 만들 수 있지만, 바이너리 로깅에 실패했기 때문에 슬레이브에 복제되지 않는다는 복제 동안의 문제를 해결하기 위해 수행됩니다. 자세한 내용은 Bug # 22865를 참조하십시오.

  • mysql 데이터베이스의 테이블을 암시 적으로 사용하거나 변경하는 문. CREATE USER , DROP USER , GRANT , RENAME USER , REVOKE , SET PASSWORD .

  • 트랜잭션 제어 및 잠금 문. BEGIN , LOCK TABLES , SET autocommit = 1 (이 값이 여전히 1이 아닌 경우), START TRANSACTION , UNLOCK TABLES .

    UNLOCK TABLES 는 비 트랜잭션 테이블 잠금을 얻기 위해 현재 LOCK TABLES 에 잠겨있는 테이블이있는 경우에만 트랜잭션을 커밋합니다. FLUSH TABLES WITH READ LOCK 은 테이블 수준의 잠금을 획득하지 않기 때문에이 문 다음 UNLOCK TABLES 에 커미트가 없습니다.

    트랜잭션을 중첩 할 수 없습니다. 이것은 START TRANSACTION 문 또는 동의어 중 하나를 실행할 때 현재의 모든 트랜잭션에서 수행되는 암시 적 커밋의 결과입니다.

    XA 트랜잭션이 ACTIVE 상태에있는 동안 암시 적 커밋을 발생시키는 문을 트랜잭션에서 사용할 수 없습니다.

    BEGIN 문은 BEGIN ... END 복합 문을 시작하는 BEGIN 키워드의 사용과는 다릅니다. 후자는 암시 적 커밋을 발생시키지 않습니다. 섹션 13.6.1 "BEGIN ... END 복합 문"부분 을 참조하십시오.

  • 데이터로드 문. LOAD DATA INFILE . LOAD DATA INFILE 는 NDB 스토리지 엔진을 사용하는 테이블에 대해서만 암시 적 커밋을 발생시킵니다. 자세한 내용은 Bug # 11151를 참조하십시오.

  • 관리 문. ANALYZE TABLE , CACHE INDEX , CHECK TABLE , LOAD INDEX INTO CACHE , OPTIMIZE TABLE , REPAIR TABLE .

  • 복제 제어 문. MySQL 5.6.7에서 : START SLAVE , STOP SLAVE , RESET SLAVE , CHANGE MASTER TO . (Bug # 13858841)

MySQL 5.5.3의 시점에서 이전에 실행 전에 암시 적 커밋을 발생시킨 문의 대부분이 실행 후에도 발생시킵니다. 그 목적은 이러한 각 문은 어느쪽으로도 롤백 할 수 없기 때문에 그것을 자신의 특별한 트랜잭션에서 처리 할 수​​ 있습니다. 다음 목록은이 변경 관련 추가 정보를 보여줍니다.

  • 이전에는 특별한 경우였다 CREATE TABLE 변형 ( InnoDB 테이블에 대한 CREATE TABLE 또는 CREATE TABLE ... SELECT )는 CREATE TABLE 이 한결같이 실행 전후에 암시 적 커밋을 생성하기 위하여 현재는 특수는 사라 졌어요.

  • FLUSH 및 RESET 문은 암시 적 커밋을 발생시킵니다.

  • 트랜잭션 제어 및 잠금 문은 이전과 동일하게 동작합니다.


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