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

セッションがトランザクションの途中で終了した場合、現在のMySQLトランザクションはどうなりますか?


セッションがトランザクションの途中で終了した場合、現在のMySQLトランザクションはMySQLによってロールバックされて終了するとします。これは、現在のトランザクションで行われたすべてのデータベース変更が削除されることを意味します。セッションが終了すると、暗黙的なロールバックと呼ばれます。

テーブル「マーク」に次の値があるとします

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)

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

mysql> UPDATE marks SET Name = ‘Yash’ Where id = 5;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> quit;
Bye

上記の例では、テーブルの値を更新した後、quitステートメントを実行してセッションを終了します。セッションを再開した後でテーブルを確認すると、セッションがトランザクションの途中で終了したため、更新された値がMySQLによってロールバックされています。


  1. MySQLのEXCEPTに相当するものは何ですか?

    MySQLではEXCEPTを使用できません。代わりに、NOTIN演算子を使用してください。まずテーブルを作成しましょう- mysql> create table DemoTable    (    Number1 int    ); Query OK, 0 rows affected (0.71 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(100); Query OK, 1 row affected (0.14 se

  2. MySQLエイリアスの省略形とは何ですか?

    名前を明示的に指定する必要があります。そうでない場合は、ASコマンドを削除できます。まずテーブルを作成しましょう- mysql> create table DemoTable    (    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Name varchar(20)    ); Query OK, 0 rows affected (0.21 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert in