Hit*_*esh 2 mysql triggers stored-procedures
我一直在尝试捕获 mysql 异常,尤其是触发器和存储过程。我们如何从 mysql 端捕获异常?我仍然没有找到任何解决方案。您的帮助将不胜感激。
谢谢希特什
因为这出现在我搜索触发器中的 MySQL 错误处理的顶部,所以我想分享我的 MySQL 5.5+ 解决方案
我的原始帖子:/sf/answers/1828066201/复制如下...
因为当我在 MySQL 触发器中搜索错误处理时,这篇文章出现在顶部,所以我想我应该分享一些知识。
如果出现错误,您可以强制 MySQL 使用SIGNAL,但是如果您不将其指定为 SQLEXCEPTION 类,那么什么也不会发生,因为并非所有 SQLSTATE 都被认为是坏的,即使这样您也必须如果您有任何嵌套的 BEGIN/END 块,请确保RESIGNAL 。
或者,可能更简单,在触发器中声明一个退出处理程序并重新发出异常信号。
CREATE TRIGGER `my_table_AINS` AFTER INSERT ON `my_table` FOR EACH ROW
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
RESIGNAL;
DECLARE EXIT HANDLER FOR SQLWARNING
RESIGNAL;
DECLARE EXIT HANDLER FOR NOT FOUND
RESIGNAL;
-- Do the work of the trigger.
END
Run Code Online (Sandbox Code Playgroud)
如果你的身体发生错误,它会被抛回顶部并错误退出。这也可以用于存储过程等。
这适用于任何 5.5+ 版本。
| 归档时间: |
|
| 查看次数: |
20944 次 |
| 最近记录: |