gpt4 book ai didi

mysql - 如何捕获 mysql 的触发器和存储过程中的任何异常?

转载 作者:行者123 更新时间:2023-11-29 01:45:52 25 4
gpt4 key购买 nike

我一直在 try catch mysql 异常,尤其是对于触发器和存储过程。我们如何从 mysql 端捕获异常?。我仍然没有找到任何解决方案。您的帮助将不胜感激。

谢谢希特什

最佳答案

因为这出现在我搜索触发器中的 MySQL 错误处理的顶部,所以我想我应该分享我的 MySQL 5.5+ 解决方案

我的原始帖子:https://stackoverflow.com/a/26115231/1733365复制如下...

因为当我在 MySQL 触发器中搜索错误处理时这篇文章排在最前面,所以我想我应该分享一些知识。

如果有错误,你可以强制MySQL使用一个SIGNAL ,但如果您不将其指定为 SQLEXCEPTION 类,则不会发生任何事情,因为并非所有 SQLSTATE 都被认为是错误的,即使那样您也必须确保 RESIGNAL如果您有任何嵌套的 BEGIN/END block 。

或者,可能更简单,在您的触发器中,声明一个退出处理程序并重新发出异常。

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

如果你的 body 出现错误,它会被抛回顶部并错误退出。这也可以用于存储过程等等。

这适用于任何 5.5+ 版本。

关于mysql - 如何捕获 mysql 的触发器和存储过程中的任何异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6908453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com