mysql的事務運作
早就想寫了,一直忘了,其實很簡單
就三條命令
start transaction
commit
rollback
現在來解釋下:
start transaction;
就是開始事務追蹤的命令
開始前一定記得寫
然後
commit;
這個的意思是說確認提交,執行這個命令就不能rollback了,相當於執行完畢。
最後
rollback;
這個命令很簡單,復原到start transaction時候的狀態
現在舉例
mysql> select * from useraccount ;
+-----------+--------+-------------+
| AccountID | userID | AccountName |
+-----------+--------+-------------+
| 1 | 2 | zhifubao |
+-----------+--------+-------------+
1 row in set (0.00 sec)
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> update useraccount set userID = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from useraccount;
+-----------+--------+-------------+
| AccountID | userID | AccountName |
+-----------+--------+-------------+
| 1 | 1 | zhifubao |
+-----------+--------+-------------+
1 row in set (0.00 sec)
mysql> rollback; (這裡假如不想復原就用commit;就可以完成了)
Query OK, 0 rows affected (0.28 sec)
mysql> select * from useraccount;
+-----------+--------+-------------+
| AccountID | userID | AccountName |
+-----------+--------+-------------+
| 1 | 2 | zhifubao |
+-----------+--------+-------------+
1 row in set (0.00 sec)