집 >데이터 베이스 >MySQL 튜토리얼 >사용자가 현재 MySQL 트랜잭션을 암시적으로 종료하려면 어떻게 해야 합니까?
현재 MySQL 트랜잭션을 암시적으로 종료하는 방법은 다음과 같습니다.
현재 MySQL 트랜잭션은 암시적으로 종료되며 CREATE 또는 DROP 데이터베이스와 같은 DDL 문을 실행하면 종료됩니다. ALTER 또는 DROP 테이블이나 저장 루틴)을 생성하여 변경 사항을 커밋합니다. 이는 MySQL에서는 이러한 명령문을 롤백할 수 없기 때문입니다.
mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO MARKS Values(3,'gaurav','Comp',69); Query OK, 1 row affected (0.26 sec) mysql> Create table student(id int, Name Varchar(10),); Query OK, 0 rows affected (0.84 sec)
트랜잭션 사이에 DDL 문을 실행하므로 트랜잭션이 암시적으로 종료됩니다. MySQL은 모든 변경 사항을 저장하고 롤백할 수 없습니다. 다음 결과 세트의 도움으로 이를 관찰할 수 있습니다.
mysql> Rollback; Query OK, 0 rows affected (0.00 sec) mysql> select * from marks; +------+---------+-----------+-------+ | Id | Name | Subject | Marks | +------+---------+-----------+-------+ | 1 | Aarav | Maths | 50 | | 1 | Harshit | Maths | 55 | | 3 | Gaurav | Comp | 69 | +------+---------+-----------+-------+ 3 rows in set (0.00 sec)
클라이언트 세션 연결을 끊으면 현재 세션이 암시적으로 종료되며, 이 경우 변경 사항이 롤백됩니다.
클라이언트 세션을 종료하면 현재 세션도 암시적으로 종료되며, 이 경우 변경 사항도 롤백됩니다.
현재 START TRANSACTION 명령을 실행하면 트랜잭션이 암시적으로 종료됩니다. 이 경우 변경 사항이 커밋됩니다.
mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO Marks Values(4, 'Rahul','History',40); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Marks Values(5, 'Yashraj','English',48); Query OK, 1 row affected (0.00 sec) mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec)
이 예에서 START TRANSACTION 문은 암시적으로 트랜잭션을 종료하고 변경 사항을 커밋합니다.
rreee위 내용은 사용자가 현재 MySQL 트랜잭션을 암시적으로 종료하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!