mysql - 如何从存储过程发出 00000(成功)的 sqlstate 信号?
问题描述
我希望我的迁移过程在适当的时候返回标准的 sqlstate 代码。成功的标准代码是“00000”,但是当我发出这个 sqlstate 信号时,我收到以下错误:
Error Code: 1407. Bad SQLSTATE: '00000'
这是它抱怨的代码。如果我将状态更改为 01000,它会起作用,所以这不是我的语法。
signal sqlstate '00000'
set message_text = '::SUCCESS::'
解决方案
根据文档:
https://dev.mysql.com/doc/refman/5.5/en/signal.html
在以下描述中,“未处理”表示没有使用 DECLARE ... HANDLER 定义已发出信号的 SQLSTATE 值的处理程序。
Class = '00' (success) Illegal. SQLSTATE values that begin with '00' indicate success and are not valid for SIGNAL.
换句话说,您只能使用“信号”来返回错误条件。 不调用信号意味着“成功”。
signal sqlstate '12345'
set message_text = '::SOME CUSTOM ERROR::'
推荐阅读
- mongodb - 如何在 mongo shell 中将 MongoDB ISODate 数组元素转换为格式化的字符串元素?
- javascript - Jquery中的复选框检查问题
- python - QApplication和主窗口连接
- amazon-web-services - 为什么未在 CloudFormation Stack 中创建此安全组?
- regex - 正则表达式在第一次出现时停止
- c# - Selenium Webdriver 单击并发送密钥等在 Google Chrome 版本 78.0.3904.87 上不起作用
- python - 有没有更快的方法来达到相同的结果?
- mongodb - MongoDB:如何获取集合中的对象名称?
- sql - 如何在两个集合之间建立查找连接
- java - gradle中的本地Jar依赖:如何导入代码