【问题标题】:Return Exception from MySQL stored procedure从 MySQL 存储过程返回异常
【发布时间】:2012-06-14 07:39:27
【问题描述】:

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

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

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

异常'1062'

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

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

【问题讨论】:

  • 我认为我们需要更多关于 SP 的信息,有时错误可能在其他地方
  • 错误可以在任何地方.. 那是我们使用处理程序然后如何得到它??

标签: mysql stored-procedures exception-handling


【解决方案1】:

在 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 Questions 中找到相关信息。

MySQL Stored Procedure Error Handling

How to raise an error within a MySQL function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 2013-02-02
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    相关资源
    最近更新 更多