MySQLのきほん「トランザクション」

スポンサーリンク
electronics engineer fixing cables on server MySQL
Photo by Field Engineer on Pexels.com

これまでは、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版]  山田奈美(著)山田祥寛(監修)技術評論社

コメント

タイトルとURLをコピーしました