<bdo id='kiNQN'></bdo><ul id='kiNQN'></ul>

    1. <i id='kiNQN'><tr id='kiNQN'><dt id='kiNQN'><q id='kiNQN'><span id='kiNQN'><b id='kiNQN'><form id='kiNQN'><ins id='kiNQN'></ins><ul id='kiNQN'></ul><sub id='kiNQN'></sub></form><legend id='kiNQN'></legend><bdo id='kiNQN'><pre id='kiNQN'><center id='kiNQN'></center></pre></bdo></b><th id='kiNQN'></th></span></q></dt></tr></i><div id='kiNQN'><tfoot id='kiNQN'></tfoot><dl id='kiNQN'><fieldset id='kiNQN'></fieldset></dl></div>
      <tfoot id='kiNQN'></tfoot>

      <small id='kiNQN'></small><noframes id='kiNQN'>

        <legend id='kiNQN'><style id='kiNQN'><dir id='kiNQN'><q id='kiNQN'></q></dir></style></legend>

        MySQL 存储过程错误处理

        时间:2023-10-26
          1. <i id='r2yFT'><tr id='r2yFT'><dt id='r2yFT'><q id='r2yFT'><span id='r2yFT'><b id='r2yFT'><form id='r2yFT'><ins id='r2yFT'></ins><ul id='r2yFT'></ul><sub id='r2yFT'></sub></form><legend id='r2yFT'></legend><bdo id='r2yFT'><pre id='r2yFT'><center id='r2yFT'></center></pre></bdo></b><th id='r2yFT'></th></span></q></dt></tr></i><div id='r2yFT'><tfoot id='r2yFT'></tfoot><dl id='r2yFT'><fieldset id='r2yFT'></fieldset></dl></div>

            • <tfoot id='r2yFT'></tfoot>
                <tbody id='r2yFT'></tbody>
                <bdo id='r2yFT'></bdo><ul id='r2yFT'></ul>
                <legend id='r2yFT'><style id='r2yFT'><dir id='r2yFT'><q id='r2yFT'></q></dir></style></legend>

                1. <small id='r2yFT'></small><noframes id='r2yFT'>

                  本文介绍了MySQL 存储过程错误处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我相信 MySQL 中目前没有任何可用的东西允许访问 MySQL 存储过程中最后执行的语句的 SQLSTATE.这意味着当在存储过程中引发通用 SQLException 时,很难/不可能推导出错误的确切性质.

                  I believe there is nothing currently available in MySQL that allows access to the SQLSTATE of the last executed statement within a MySQL stored procedure. This means that when a generic SQLException is raised within a stored procedure it is hard/impossible to derive the exact nature of the error.

                  是否有人有一种解决方法来导出 MySQL 存储过程中错误的 SQLSTATE,而不涉及为每个可能的 SQLSTATE 声明处理程序?

                  Does anybody have a workaround for deriving the SQLSTATE of an error in a MySQL stored procedure that does not involve declaring a handler for every possible SQLSTATE?

                  例如 - 假设我试图返回一个 error_status ,它超出了下面的通用SQLException发生在这个 BEGIN....END 块中的某处":

                  For example - imagine that I am trying to return an error_status that goes beyond the generic "SQLException happened somewhere in this BEGIN....END block" in the following:

                  DELIMITER $$
                  
                  CREATE PROCEDURE `myProcedure`(OUT o_error_status varchar(50))
                  MY_BLOCK: BEGIN
                  
                   DECLARE EXIT handler for 1062 set o_error_status := "Duplicate entry in table";
                   DECLARE EXIT handler for 1048 set o_error_status := "Trying to populate a non-null column with null value"; 
                  -- declare handlers ad nauseum here....
                  
                   DECLARE EXIT handler for sqlexception set o_error_status:= "Generic SQLException. You'll just have to figure out the SQLSTATE yourself...." ;
                  
                  -- Procedure logic that might error to follow here...
                  
                  END MY_BLOCK$$
                  

                  有什么建议吗?

                  PS 我正在运行 MySQL 5.1.49

                  PS I am running MySQL 5.1.49

                  推荐答案

                  GET DIAGNOSTICS 在 5.6.4 中可用

                  GET DIAGNOSTICS is available in 5.6.4

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

                  这篇关于MySQL 存储过程错误处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:SQL Server 中的处理日期 下一篇:存储过程和权限 - EXECUTE 足够了吗?

                  相关文章

                  <small id='orRpo'></small><noframes id='orRpo'>

                2. <tfoot id='orRpo'></tfoot>
                3. <i id='orRpo'><tr id='orRpo'><dt id='orRpo'><q id='orRpo'><span id='orRpo'><b id='orRpo'><form id='orRpo'><ins id='orRpo'></ins><ul id='orRpo'></ul><sub id='orRpo'></sub></form><legend id='orRpo'></legend><bdo id='orRpo'><pre id='orRpo'><center id='orRpo'></center></pre></bdo></b><th id='orRpo'></th></span></q></dt></tr></i><div id='orRpo'><tfoot id='orRpo'></tfoot><dl id='orRpo'><fieldset id='orRpo'></fieldset></dl></div>

                    1. <legend id='orRpo'><style id='orRpo'><dir id='orRpo'><q id='orRpo'></q></dir></style></legend>
                      • <bdo id='orRpo'></bdo><ul id='orRpo'></ul>