Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

현재 트랜잭션 중간에 START TRANSACTION 명령이 실행되면 현재 MySQL 트랜잭션은 어떻게 됩니까?


현재 트랜잭션 중간에 START TRANSACTION이 실행되면 현재 트랜잭션이 커밋되고 종료됩니다. 현재 트랜잭션의 모든 데이터베이스 변경 사항은 영구적으로 적용됩니다. 이를 START TRANSACTION 명령에 의한 암시적 커밋이라고 합니다.

예시

테이블 'marks'에 다음 값이 있다고 가정합니다.

mysql> 표시에서 * 선택;+------+---------+-----------+----+| 아이디 | 이름 | 주제 | 표시 |+------+---------+----------+----+| 1 | 아라브 | 수학 | 50 || 1 | 가혹한 | 수학 | 55 || 3 | 가우라프 | 비교 | 69 |+------+---------+-----------+----+셋트(0.00초)의 3행 mysql> START TRANSACTION;쿼리 OK, 0개의 행이 영향을 받았습니다(0.00초)mysql> INSERT INTO Marks Values(4, 'Rahul','History',40);Query OK, 1개의 행이 영향을 받았습니다(0.00초)mysql> INSERT INTO Marks Values( 5, 'Yashraj','English',48);쿼리 OK, 1행 영향(0.00초)mysql> START TRANSACTION;쿼리 OK, 0행 영향(0.00초)

이 예에서 START TRANSACTION 문이 현재 트랜잭션 중간에 실행되면 현재 트랜잭션이 암시적으로 종료되고 변경 사항이 커밋됨을 관찰할 수 있습니다.

mysql> 표시에서 * 선택;+------+---------+-----------+----+| 아이디 | 이름 | 주제 | 표시 |+------+---------+----------+----+| 1 | 아라브 | 수학 | 50 || 1 | 가혹한 | 수학 | 55 || 3 | 가우라프 | 비교 | 69 || 4 | 라훌 | 역사 | 40 || 5 | 야슈라즈 | 영어 | 48 |+------+---------+-----------+----+5행 세트(0.00초)