これまでは、1つの処理を実行してきたが、アプリを開発していく中では、複数の処理を意味的には1つの処理として扱いたいことがある。
今回は、このような複数の処理をまとめて行う場合に欠かせない「トランザクション」についてご紹介しよう。
それでは、実際に操作してみよう。
まずは、mysqlクライアントを起動しよう。
rocky-seven@rocky-notePC:~$ mysql -u myusr -p
Enter password:
続いて、basicデータベースに移動しよう。
mysql> USE basic;
トランザクションを開始しよう
以下の通り入力してBEGIN命令を実行する。
mysql> BEGIN;
以下の通り、表示されれば、成功である。
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)
レコードを登録しよう
usrテーブルに新規にレコードを登録しよう。
以下の通り入力してINSERT命令を実行する。
mysql> INSERT INTO usr
-> VALUES ('sinoue','38271','井上翔子',2);
以下の通り、表示されれば、成功である。
mysql> INSERT INTO usr
-> VALUES ('sinoue','38271','井上翔子',2);
Query OK, 1 row affected (0.01 sec)
テーブルの内容を確認しよう
以下の通り入力してSELECT命令を実行しよう。
mysql> SELECT * FROM usr
-> WHERE uid = 'sinoue';
以下の通り、表示されれば、成功である。
mysql> SELECT * FROM usr
-> WHERE uid = 'sinoue';
+--------+--------+--------------+--------+
| uid | passwd | uname | family |
+--------+--------+--------------+--------+
| sinoue | 38271 | 井上翔子 | 2 |
+--------+--------+--------------+--------+
1 row in set (0.00 sec)
トランザクションを終了しよう
トランザクションを「キャンセル」して終了しよう。
以下の通り入力してROLLBACK命令を実行しよう。
mysql> ROLLBACK;
以下の通り、表示されれば、成功である。
mysql> ROLLBACK;
Query OK, 0 rows affected (0.01 sec)
テーブルの内容を確認しよう
もう一度、usrテーブルの内容を確認しよう。
以下の通り入力してSELECT命令を実行しよう。
mysql> SELECT * FROM usr
-> WHERE uid = 'sinoue';
以下の通り、表示されれば、成功である。
mysql> SELECT * FROM usr
-> WHERE uid = 'sinoue';
Empty set (0.00 sec)
レコードが消えている。
今回は、ここまでである。mysqlクライアントを終了しよう。
mysql> exit
(参考)3ステップでしっかり学ぶ MySQL入門 [改訂第3版] 山田奈美(著)山田祥寛(監修)技術評論社
コメント