MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

そのトランザクションの途中でDDLステートメントが実行された場合、MySQLの現在のトランザクションはどうなりますか?


現在のMySQLトランザクションは、CREATEまたはDROPデータベース、Create、ALTER、DROPテーブル、または保存されたルーチンなどのDDLステートメントのいずれかが現在の途中で実行されるとコミットおよび終了します。取引。現在のトランザクションで行われたすべてのデータベースの変更は永続的になり、ロールバックできません。

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO MARKS Values(6,'Manak','History',70);
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    |
| 4    | Rahul   | History   | 40    |
| 5    | Yashraj | English   | 48    |
| 6    | Manak   | History   | 70    |
+------+---------+---------+---------+
6 rows in set (0.00 sec)

  1. MySQL 8.0で追加された機能は何ですか?

    MySQL8.0に追加された機能を理解しましょう 強化されたセキュリティレベル セキュリティレベルが改善され、DBA(データベース管理者)のアカウント管理の柔軟性が向上しました。 リソースグループ リソースグループは作成および管理でき、サーバーには、サーバー内で実行されている特定のグループのリソースにスレッドを割り当てる機能があります。グループ属性を使用して、リソースを制御したり、リソースを消費するためのスレッドへのアクセスを制限または提供したりできます。 トランザクションデータディクショナリ トランザクションデータディクショナリは、以前は非トランザクションテーブルであったオブジェクトに

  2. MySQL 8.0で削除されたオプションと変数は何ですか?

    MySQL8.0で削除されたオプションと変数の一部を以下に示します。 innodb_available_undo_logs: これは、InnoDBロールバックセグメントの総数を指します。 innodb_rollback_segmentsとは異なります 、アクティブなロールバックセグメントの数を表示します。 MySQL8.0.2で削除されました。 Qcache_free_blocks: これは、クエリキャッシュ内の空きメモリブロックの数を指します。 MySQL8.0.3で削除されました。 Qcache_free_memory: これは、クエリキャッシュの空きメモリの量を指します。