mysql是支持嵌套事务的,但是没多少人会这么干的…. 前段时间在国外看到一些老外在争论mysql嵌套事务的场景必要性。 逗死我了, 这嵌套的鬼畜用法还有啥场景必要性。 跟以前的dba同事聊过, 得知,在任何场景下都不要使用mysql嵌套的事务。
那么使用mysql嵌套事务会遇到什么问题 ?
mysql> select * from ceshi;
+------+
| n |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
mysql> start transaction ;
query ok, 0 rows affected (0.00 sec)
mysql> insert into ceshi values(2);
query ok, 1 row affected (0.00 sec)
mysql> start transaction ;
query ok, 0 rows affected (0.00 sec)
mysql> insert into ceshi values(3);
query ok, 1 row affected (0.00 sec)
mysql> commit;
query ok, 0 rows affected (0.00 sec)
mysql> rollback;
query ok, 0 rows affected (0.00 sec)
虽然我在最后rollback回滚了,但是数据显示是 1 2 3 . 原本大家以为我的事务虽然是嵌套的状态,但感觉最后rollback