• 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 문법
  • 14. InnoDB 스토리지 엔진
  • 1. InnoDB 소개
    2. InnoDB의 개념과 아키텍처
    3. InnoDB 구성
    4. InnoDB 관리
    5. InnoDB 테이블 스페이스 관리
    6. InnoDB 테이블 관리
    1. InnoDB 테이블 만들기
    2. 다른 컴퓨터에 InnoDB 테이블의 이동 또는 복사
    3. 트랜잭션을 사용하여 DML 작업 그룹화
    4. MyISAM에서 InnoDB의 테이블 변환
    5. InnoDB에서 AUTO_INCREMENT 처리
    6. InnoDB 및 FOREIGN KEY 제약
    7. InnoDB 테이블에서의 제한
    7. InnoDB 압축 테이블
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    14. InnoDB INFORMATION_SCHEMA 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. 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 새로운 기능

14.6.3 트랜잭션을 사용하여 DML 작업 그룹화

기본적으로 MySQL 서버에 접속은 자동 위탁 모드가 활성화되어있는 상태에서 시작되므로 SQL 문을 실행할 때마다 자동으로 커밋됩니다. 일련의 DML 문을 실행하고 모든 한꺼번에 커밋 또는 롤백 할 표준 조작이다 다른 데이터베이스 시스템을 사용한 경험이있는 경우이 작업 모드에 익숙하지 않은지도 모릅니다.

다중 문 트랜잭션 을 사용하려면 SQL 문 SET autocommit = 0 을 사용하여 자동 커밋을 해제하고 필요한 경우 COMMIT 또는 ROLLBACK 을 사용하여 각 트랜잭션을 종료합니다. 자동 커밋을 켠 상태로하려면 START TRANSACTION 을 사용하여 각 트랜잭션을 시작하고 COMMIT 또는 ROLLBACK 을 사용하여 종료합니다. 다음 예제는 두 개의 트랜잭션을 나타냅니다. 1 번째는 커밋 된 두 번째는 롤백되고 있습니다.

shell> mysql test

mysql> CREATE TABLE customer (a INT, b CHAR (20), INDEX (a));
Query OK, 0 rows affected (0.00 sec)
mysql> -- Do a transaction with autocommit turned on.
mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO customer VALUES (10, 'Heikki');
Query OK, 1 row affected (0.00 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)
mysql> -- Do another transaction with autocommit turned off.
mysql> SET autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO customer VALUES (15, 'John');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO customer VALUES (20, 'Paul');
Query OK, 1 row affected (0.00 sec)
mysql> DELETE FROM customer WHERE b = 'Heikki';
Query OK, 1 row affected (0.00 sec)
mysql> -- Now we undo those last 2 inserts and the delete.
mysql> ROLLBACK;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM customer;
+------+--------+
| a    | b      |
+------+--------+
|   10 | Heikki |
+------+--------+
1 row in set (0.00 sec)
mysql>

클라이언트 측 언어에서의 트랜잭션

PHP, Perl DBI, JDBC, ODBC 등의 API 또는 MySQL의 표준 C 호출 인터페이스는 COMMIT 등의 트랜잭션 제어 문을 SELECT 및 INSERT 등의 기타 SQL 문처럼 문자열로 MySQL 서버에 보낼 수 있습니다. 일부 API를 사용하면 별도의 특별 트랜잭션 커밋 및 롤백 함수 나 메소드도 제공되고 있습니다.

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