如果mysql命令列表中出现任何错误,是否可以自动回滚?
例如,沿着以下路线的东西:
begin transaction;
insert into myTable values1 ...
insert into myTable values2 ...; -- will throw an error
commit;
字符串
现在,在执行时,我希望整个事务失败,因此我应该NOT在myTable中看到values 1。但不幸的是,即使事务有错误,该表也会使用values 1。
有什么想法我怎么使它回滚?(再次,在任何错误)?
EDIT -从SQL更改为标准SQL
3条答案
按热度按时间jtw3ybtb1#
您可以通过以下方式使用13.6.7.2. DECLARE ... HANDLER Syntax:
字符串
有关完整的示例,请查看以下SQL Fiddle。
wnavrhmk2#
例如,如果需要在代码中SIGNAL特定的SQL EXCEPTION,则可以使用EXIT HANDLER。例如:
字符串
x8goxv8g3#
上述解决方案很好,但为了使其更简单,
字符串