在MySQL數據庫中使用事務來處理數據操作,
需要注意的是MySQL對Transaction的支持需要表爲INNODB所以我們以下面的例子來簡單使用Transaction
首先
mysql> USE study;
Database changed
mysql>
新建數據庫transaction;
mysql> CREATE TABLE transaction (id INT, name VARCHAR(20))ENGINE=INNODB;
Query OK, 0 rows affected (0.17 sec)
mysql> SHOW CREATE TABLE transaction;
+-------------+------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------------+------------------------------------------------------------------------------------------------------------------------------------+
| transaction | CREATE TABLE `transaction` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------------+------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
MySQL中通過變量autocommit的值來判斷時候開啓事務,當autocommit爲1時表示自動提交數據,所以這裏是指autocommit=0
mysql> SET autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM transaction;
Empty set (0.00 sec)
下面插入數據
mysql> INSERT INTO transaction VALUES(1, 'adam');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM transaction;
+------+------+
| id | name |
+------+------+
| 1 | adam |
+------+------+
1 row in set (0.00 sec)
使用ROLLBACK來取消上一步的操作。或者使用COMMIT;來提交操作。
mysql> ROLLBACK;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM transaction;
Empty set (0.00 sec)
mysql>
簡單的事務應用。需要注意表必須爲INNODB