ホームページ  >  記事  >  データベース  >  ユーザーはどのようにして現在の MySQL トランザクションを暗黙的に終了できますか?

ユーザーはどのようにして現在の MySQL トランザクションを暗黙的に終了できますか?

WBOY
WBOY転載
2023-08-29 22:57:02849ブラウズ

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

現在の MySQL トランザクションを暗黙的に終了する方法は次のとおりです。

DDL ステートメントを実行することにより、

現在の MySQL トランザクションは次のようになります。暗黙的に終了し、変更は任意の DDL ステートメント (CREATE または DROP データベース、Create、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 コマンド経由

現時点では、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 ステートメントは暗黙的にトランザクションを終了し、変更をコミットします。

えええええ

以上がユーザーはどのようにして現在の MySQL トランザクションを暗黙的に終了できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。