mysql error handler_MySql错误处理(二) - Condition Handle
20.2.10.2. DECLARE处理程序
DECLARE handler_type HANDLER FOR condition_value[,...] sp_statement
handler_type:
CONTINUE
| EXIT
| UNDO
condition_value:
SQLSTATE [VALUE] sqlstate_value
| condition_name
| SQLWARNING
| NOT FOUND
| SQLEXCEPTION
| mysql_error_code
这个语句指定每个可以处理一个或多个条件的处理程序。如果产生一个或多个条件,指定的语句被执行。
对一个CONTINUE处理程序,当前子程序的执行在执行 处理程序语句之后继续。对于EXIT处理程序,当前BEGIN...END复合语句的执行被终止。UNDO 处理程序类型语句还不被支持。
· SQLWARNING是对所有以01开头的SQLSTATE代码的速记。
· NOT FOUND是对所有以02开头的SQLSTATE代码的速记。
· SQLEXCEPTION是对所有没有被SQLWARNING或NOT FOUND捕获的SQLSTATE代码的速记。
除了SQLSTATE值,MySQL错误代码也不被支持。
例如:
mysql> CREATE TABLE test.t (s1 int,primary key (s1));
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter //
mysql> CREATE PROCEDURE handlerdemo ()
-> BEGIN
-> DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;
-> SET @x = 1;
-> INSERT INTO test.t VALUES (1);
-> SET @x = 2;
-> INSERT INTO test.t VALUES (1);
-> SET @x = 3;
-> END;
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> CALL handlerdemo()//
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @x//
+------+
| @x |
+------+
| 3 |
+------+
1 row in set (0.00 sec)
注 意到,@x是3,这表明MySQL被执行到程序的末尾。如果DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1; 这一行不在,第二个INSERT因PRIMARY KEY强制而失败之后,MySQL可能已经采取 默认(EXIT)路径,并且SELECT @x可能已经返回2。
mysql error handler_MySql错误处理(二) - Condition Handle相关推荐
- Linux mysql 登录 2002,Linux 下 Mysql error 2002 错误解决
Linux 下 Mysql error 2002 错误解决 先查看 /etc/rc.d/init.d/mysqld status 查看mysql是否已经启动. 如果启动的的话,先将数据库停止 ki ...
- mysql error 1146错误解决办法
mysql error 1146 错误出现原因有很多,网上的解决办法也是林林总总.我是通过网上的建表语句在本地建表报的这个错误,一一排查之后发现只是复制了语句中多余的注释部分,去掉之后问题解决.
- MYSQL ERROR CODE 错误编号的意义
mysql error code(备忘) 转1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件 ...
- mysql error 1449_MySql错误:ERROR 1449 (HY000)
笔者系统为 mac ,不知怎的,Mysql 竟然报如下错误: ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschem ...
- mysql1045错误解读_谈谈MYSQL ERROR 1045 错误的解决办法!
N久没重做win7系统了,昨天重做了一下,之后就是配置环境.apache/PHP都很顺利,唯独mysql,装到最后提示: The security settings could not be appl ...
- MYSQL ERROR 1045 错误的解决办法 (转)
Q:51Testing软件测试网n_p6[zBt 2h@ D$~1t NP3I0 ERROR 1045 (28000): Access denied for user'root'@'localhos ...
- Mysql Error 1142错误解决方法
2019独角兽企业重金招聘Python工程师标准>>> Error:ALTER command denied to user 'xxxx'@'localhost' for table ...
- MySQL安装失败出现could not start the service mysql error:0 错误提示
原因:以前在本机中安装过MySQL,卸载的时候没有卸载干净导致的,因为有的文件夹隐藏的很深. 解决步骤:1.MySQL服务停止. 控制面板---管理工具->服务 里面将MySQL的服务给停 ...
- 解决MySql ERROR 1698
解决MySql ERROR 1698 错误:Access denied for user 'root'@'localhost' 一 问题描述 二 解决措施 一 问题描述 在Ubuntu服务器上安装My ...
最新文章
- 【Java学习笔记之二十五】初步认知Java内部类
- 人工智能到底是啥_人工智能的本质究竟是什么?
- webuploader 怎么在react中_另辟蹊径搭建阅读React源码调试环境支持所有React版本细分文件断点调试...
- SpringBoot自定义转换器(Convert)
- 页面闲置一段时间后,跳转
- ubuntu列出所有磁盘_列出Ubuntu上的磁盘空间使用情况
- 服务器的响应一直一直发送不过去,zeroRPC:在发送响应后继续运行进程
- 英特尔回应杨笠代言争议;天弘基金称已处理在支付宝上「无故扣款」问题;Eclipse 4.19 发布 | 极客头条...
- 我是如何将博客转成PDF的
- Hyperledger Fabric ./byfn.sh -m up -s couchdb Error peer0.org1 failed to join the channel
- Ubuntu16.04深度学习环境+个人桌面配置(CUDA10.1 + cudnn8.0.4 + pytorch1.7)
- PlatformIO中arduino框架下stm32编程实现原理
- pgsql数据替换替换换行符
- HTML吸引人眼球的网页,超吸引眼球的优秀网站设计欣赏
- OracleEBSAPP-XLA-95103错误(EventIDcannothaveaNULLvalue.)
- MP2459被完美替代内部集成有功率MOSFET管FS2459的60V0.5A降压IC
- linux程序提示killed的原因
- 初中计算机会考多少字合格,初中初三期中考试总分应该是多少
- Webpack是什么?Webpack有什么应用?
- 合肥工业大学计算机网络期中考试,合肥工业大学计算机网络2013年试卷及答案(终极版)...