admin管理员组文章数量:1599543
获取存储过程中的报错信息,返回给应用程序,便于排查问题。网上参考了很多,折腾了好久,没解决实际问题,最后根据官方文档(MySQL :: MySQL 8.0 Reference Manual),找了个样例代码,成功解决了问题。样例代码如下:
查看官方文档很重要
CREATE DEFINER=`user_name`@`%` PROCEDURE `do_insert`(v_comp_id int,v_shop_id int)
DETERMINISTIC
BEGIN
-- Declare variables to hold diagnostics area information
DECLARE code CHAR(5) DEFAULT '00000';
DECLARE msg TEXT;
DECLARE nrows INT;
DECLARE result TEXT;
-- Declare exception handler for failed insert
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
code = RETURNED_SQLSTATE, msg = MESSAGE_TEXT;
END;
-- Perform the insert
INSERT INTO t1 (int_col) VALUES(value);
-- Check whether the insert was successful
IF code = '00000' THEN
GET DIAGNOSTICS nrows = ROW_COUNT;
SET result = CONCAT('insert succeeded, row count = ',nrows);
ELSE
SET result = CONCAT('insert failed, error = ',code,', message = ',msg);
END IF;
-- Say what happened
SELECT result;
END
本文标签: 报错过程中信息mysqlDiagnostics
版权声明:本文标题:mysql获取存储过程中报错信息(GET DIAGNOSTICS CONDITION 1) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728323611a1154150.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论