测试代码
START TRANSACTION
SAVEPOINT gg
DELETE FROM ceshi WHERE id=14
SELECT * FROM ceshi
ROLLBACK TO gg
参考
http://zhidao.baidu.com/link?url=SYMIE7afAprtehGBSMthdMUC3oRsGPOOnrjxRb78vzB6ChDCOyZG43R3hwXa7ikGoxZ9Hr__JUH78rPhnwRJcK
为什么mysql中的saveponit没有用?
问题:
mysql> INSERT INTO CUSTOMER_TBL VALUES -> ('615','FRED WOLF','109 MEMORY LANE','PLAINFIELD','IN', -> 46113,'3175555555',NULL); Query OK, 1 row affected (0.03 sec) mysql> savepoint sp1; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO CUSTOMER_TBL VALUES -> ('559','RITA THOMPSON','125 PEACHTREE','INDIANAPOLIS','IN', -> 46248,'3171111111',NULL); Query OK, 1 row affected (0.00 sec) mysql> savepoint sp2; Query OK, 0 rows affected (0.00 sec) mysql> rollback to sp1; ERROR 1305 (42000): SAVEPOINT sp1 does not exist
答复:
没有用START TRANSACTION 启动事务吧? 得在所有savepoint之前执行START TRANSACTION 由于autocommit选项设置为0,这种情况下mysql会自动提交事务,所以需要显式启动事务。