MySQL脚本出错时回滚

时间:2012-10-09 14:02:38

标签: mysql transactions

我正在尝试在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

1 个答案:

答案 0 :(得分:5)

如果我理解正确,您希望在单个事务中运行包含(例如插入)的SQL脚本,如果任何插入失败,将会回滚。对吗?

我不是百分之百,但我很确定你需要将它作为存储过程来执行,或者以编程方式执行,比如Java。