MySQL的Transaction

在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章