mysql事务的理解

默认情况下,MySQL采用autocommit模式运行。这意味着,当执行更新表的语句之后,MySQL立刻把更新存储到磁盘中。

 
事务安全型的存储引擎(如InnoDB, BDB或NDB簇),
使用以下语句禁用autocommit模式:
SET AUTOCOMMIT=0;
 
 
使用START TRANSACTION,autocommit仍然被禁用,直到COMMITROLLBACK结束事务为止。然后autocommit模式恢复到原来的状态。
 
 
 
mysql> select from test_main //
+----+-------+
| id | value |
+----+-------+
|  1 | ONE   |
|  2 | TWO   |
|  3 | THREE |
+----+-------+
rows in set (0.00 sec)
 
mysql> START TRANSACTION;
    -> //
Query OK, 0 rows affected (0.00 sec)
 
mysql> INSERT INTO test_main VALUES(4, 'FOUR') //
Query OK, 1 row affected (0.00 sec)
 
mysql> INSERT INTO test_main VALUES(4, 'FOUR') //
ERROR 1062 (23000): Duplicate entry '4' for key 'PRIMARY'
 
mysql> ROLLBACK//
Query OK, 0 rows affected (0.01 sec)
 
mysql> select from test_main //
+----+-------+
| id | value |
+----+-------+
|  1 | ONE   |
|  2 | TWO   |
|  3 | THREE |
+----+-------+
rows in set (0.00 sec)
原文地址:https://www.cnblogs.com/aprils/p/4566241.html