>  기사  >  데이터 베이스  >  사용자가 현재 MySQL 트랜잭션을 암시적으로 종료하려면 어떻게 해야 합니까?

사용자가 현재 MySQL 트랜잭션을 암시적으로 종료하려면 어떻게 해야 합니까?

WBOY
WBOY앞으로
2023-08-29 22:57:02849검색

用户如何隐式结束当前的 MySQL 事务?

현재 MySQL 트랜잭션을 암시적으로 종료하는 방법은 다음과 같습니다.

DDL 문을 실행하여

현재 MySQL 트랜잭션은 암시적으로 종료되며 CREATE 또는 DROP 데이터베이스와 같은 DDL 문을 실행하면 종료됩니다. ALTER 또는 DROP 테이블이나 저장 루틴)을 생성하여 변경 사항을 커밋합니다. 이는 MySQL에서는 이러한 명령문을 롤백할 수 없기 때문입니다.

Example

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 명령을 통해

현재 START TRANSACTION 명령을 실행하면 트랜잭션이 암시적으로 종료됩니다. 이 경우 변경 사항이 커밋됩니다.

Example

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제