我正在尝试在MySql中创建一个事务,该事务将在事务期间发生异常时回滚。在存储过程中使用以下内容类似。
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
这可以在不编写存储过程的情况下完成吗?例如,以下代码段应该回滚第一个插入,因为第二个插入将失败。
START TRANSACTION;
INSERT INTO mytable VALUE 'foo1',2,'foo3','foo4'
INSERT INTO mytable VALUE 'foo1','foo2','foo3','foo4'
COMMIT
答案 0 :(得分:5)
如果我理解正确,您希望在单个事务中运行包含(例如插入)的SQL脚本,如果任何插入失败,将会回滚。对吗?
我不是百分之百,但我很确定你需要将它作为存储过程来执行,或者以编程方式执行,比如Java。