MySQL脚本出错时回滚

Dam*_*ien 8 mysql transactions

我正在尝试在MySql中创建一个事务,它将在事务期间发生异常时回滚.在存储过程中使用以下类似.

DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK; 
Run Code Online (Sandbox Code Playgroud)

这可以在不编写存储过程的情况下完成吗?例如,以下代码段应该回滚第一个插入,因为第二个插入将失败.

START TRANSACTION;
INSERT INTO mytable VALUE 'foo1',2,'foo3','foo4'
INSERT INTO mytable VALUE 'foo1','foo2','foo3','foo4'
COMMIT
Run Code Online (Sandbox Code Playgroud)

ct_*_*ct_ 5

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

我不是百分之百,但我很确定你需要这样做作为存储过程或编程,比如Java.

  • 是的,这就是我想要做的,也是我通过搜索互联网得出的结论,但我发现很难相信该选项无法从 SQL 脚本中获得。 (2认同)