如何捕获mysql触发器和存储过程中的任何异常?
我一直在尝试捕捉mysql异常,特别是对于触发器和存储过程。我们如何从mysql端捕捉异常?。我仍然没有找到任何解决办法。谢谢你的帮助 谢谢如何捕获mysql触发器和存储过程中的任何异常?,mysql,stored-procedures,triggers,Mysql,Stored Procedures,Triggers,我一直在尝试捕捉mysql异常,特别是对于触发器和存储过程。我们如何从mysql端捕捉异常?。我仍然没有找到任何解决办法。谢谢你的帮助 谢谢 Hitesh检查DECLARE处理程序的语法 此外,如果您试图调试SP,这可能会对您有所帮助: 因为这是我在搜索触发器中的MySQL错误处理时提到的,所以我想我应该分享我的MySQL 5.5解决方案+ 我原来的帖子:复制如下 因为这篇文章是在我搜索MySQL触发器中的错误处理时出现的,所以我想与大家分享一些知识 如果出现错误,可以强制MySQL使用,但如
Hitesh检查DECLARE处理程序的语法 此外,如果您试图调试SP,这可能会对您有所帮助:
因为这是我在搜索触发器中的MySQL错误处理时提到的,所以我想我应该分享我的MySQL 5.5解决方案+ 我原来的帖子:复制如下 因为这篇文章是在我搜索MySQL触发器中的错误处理时出现的,所以我想与大家分享一些知识 如果出现错误,可以强制MySQL使用,但如果不将其指定为类SQLEXCEPTION,则不会发生任何事情,因为并非所有的SQLState都被认为是坏的,即使这样,您也必须确保是否有任何嵌套的BEGIN/END块 或者,在触发器中声明一个退出处理程序并重新签名异常,这可能更简单
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
如果在你的身体里发生了一个错误,它会被扔回到顶部,然后带着一个错误退出。这也可以用于存储过程等
这适用于任何版本5.5+