mysql - 从 MySQL 存储过程返回异常

标签 mysql stored-procedures exception

我在存储过程中使用以下异常处理程序。

DECLARE EXIT HANDLER FOR SQLEXCEPTION
    
Begin
      DROP TABLE temp_checkForDuplicate;
      SET outDone = -1;
End;

在这里我找到了一些特定的代码

exception '1062'

DECLARE EXIT handler for 1062 set o_error_status := "Duplicate entry in table";

如果我不知道异常编号怎么办:如何处理任何异常并抛出它的编号和消息?

最佳答案

在 5.5 之前的 MySQL 版本中,你不能真正做到这一点。

5.5 版引入了信号,它提供了一种返回特定错误代码或条件的机制。

http://dev.mysql.com/doc/refman/5.5/en/signal.html

5.6 版添加了“获取诊断”,可提供您需要的信息。

http://dev.mysql.com/doc/refman/5.6/en/get-diagnostics.html

您还可以在这些 SO 问题中找到相关信息。

MySQL Stored Procedure Error Handling

How to raise an error within a MySQL function

关于mysql - 从 MySQL 存储过程返回异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10979443/

相关文章:

scala - `Map[String, String]` 别名的 NotSerializableException

sql - 这是真的?表现问题

mysql - 存储过程插入查询

php - 复杂sql语句的问题

MySql - 从最大内例中排除默认日期

mysql - 如何在 MySQL 过程中使用 OUT 参数/通过 SELECT from table 读取数据

sql-server - 验证 SQL Server 存储过程中的日期参数

stored-procedures - 将大量 XML 传输到 CLR 存储过程

c# - Roslyn/MicrosoftCodeAnalysis.CSharp.Scripting 抛出 'FileNotFoundException'

java - 编译器在检查异常时没有显示任何错误