<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 存储过程错误处理

        MySQL Stored Procedure Error Handling(MySQL 存储过程错误处理)
          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 存储过程错误处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在文件系统磁盘足够的情况下,这个文件大小是可以无限增长的。 为了避免ibtmp1文件无止境的暴涨导致
                  What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)
                  MySQL groupwise MAX() returns unexpected results(MySQL groupwise MAX() 返回意外结果)
                  MySQL SELECT most frequent by group(MySQL SELECT 按组最频繁)
                  Why Mysql#39;s Group By and Oracle#39;s Group by behaviours are different(为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同)
                  MySQL GROUP BY DateTime +/- 3 seconds(MySQL GROUP BY DateTime +/- 3 秒)

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

                2. <tfoot id='orRpo'></tfoot>
                  • <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>
                      <tbody id='orRpo'></tbody>

                        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>