MySQL 如何处理触发器执行期间的错误?


假设触发器执行期间发生错误,则 MySQL 可以按以下方式处理该错误:

  • 如果 BEFORE 触发器失败,则不会执行对相应行的操作。
  • 无论尝试是否随后成功,BEFORE 触发器都会因尝试插入或修改该行而被激活。
  • 仅当所有 BEFORE 触发器和行操作都成功执行后,才会执行 AFTER 触发器。
  • BEFORE 或 AFTER 触发器的错误会导致触发器调用的整个语句失败。
  • 对于事务表,语句失败应导致语句执行的所有更改回滚。触发器失败会导致语句失败,因此触发器失败也会导致回滚。对于非事务表,无法执行此类回滚,因此尽管语句失败,但在错误之前执行的任何更改仍会生效。

更新于:22-06-2020

966 次浏览

开启你的 职业

完成课程以获得认证

开始
广告