当前位置:  数据库>mysql

MySQL 错误处理例子[译]

    来源: 互联网  发布时间:2014-09-06

    本文导语:  from http://www.devshed.com/c/a/MySQL/Error-Handling-Examples/ Error Handler Examples Here are some examples of handler declarations: If any error condition arises (other than a NOT FOUND ), continue execution after setting l_error=1 : DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET l_error=1; If a...

from http://www.devshed.com/c/a/MySQL/Error-Handling-Examples/
Error Handler Examples
Here are some examples of handler declarations:
If any error condition arises (other than a NOT FOUND ), continue execution after setting l_error=1 :
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
SET l_error=1;
If any error condition arises (other than a NOT FOUND ), exit the current block or stored program after issuing a ROLLBACK statement and issuing an error message:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT 'Error occurred – terminating';
END;
If MySQL error 1062 (duplicate key value) is encountered, continue execution after executing the SELECT statement (which generates a message for the calling program):
DECLARE CONTINUE HANDER FOR 106 2
SELECT 'Duplicate key in index';
If SQLSTATE 23000 (duplicate key value) is encountered, continue execution after executing the SELECT statement (which generates a message for the calling program):
DECLARE CONTINUE HANDER FOR SQLSTATE '23000'
SELECT 'Duplicate key in index';
When a cursor fetch or SQL retrieves no values, continue execution after setting l_done=1 :
DECLARE CONTINUE HANDLER FOR NOT
FOUND
SET l_done=1;
Same as the previous example, except specified using a SQLSTATE variable rather than a named condition:
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000 '
SET l_done=1;
Same as the previous two examples, except specified using a MySQL error code variable rather than a named condition or SQLSTATE variable:
DECLARE CONTINUE HANDLER FOR 1329
SET l_done=1;

错误处理例子
有几种错误处理的声明形式:
§ 如果任何错误(不是 NOT FOUND ) , 设置 l_error 为 1 后继续执行:
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
SET l_error=1;
§ 如果发生任何错误(不是 NOT FOUND), 执行 ROLLBACK和产生一条错误消息后退出当前块或存储过程。
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT 'Error occurred – terminating';
END;
§ 如果 MySQL 1062错误 (重复的健值 )发生,执行 SELECT语句(向调用程序发一条消息)后继续执行
DECLARE CONTINUE HANDER FOR 106 2
SELECT 'Duplicate key in index';
§ 如果 SQLSTATE 2300错误 (重复的健值 )发生,执行 SELECT语句(向调用程序发一条消息)后继续执行
DECLARE CONTINUE HANDER FOR SQLSTATE '23000'
SELECT 'Duplicate key in index';
§ 当游标或者 SQL 选择语句没有返回值时,设置 l_done=1 后继续执行
DECLARE CONTINUE HANDLER FOR NOT
FOUND
SET l_done=1;
§ 此例除了用 SQLSTATE 变量而不是命名条件以外,跟前一个例子一样
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000 '
SET l_done=1;
§ 此例除了用 MySQL 的错误码变量而不是命名条件或者 SQLSTATE 变量以外,跟前两个例子一样
DECLARE CONTINUE HANDLER FOR 1329
SET l_done=1;

    
 
 

您可能感兴趣的文章:

  • 谁有连接远程mysql的例子?看下列代码错在何处?
  • 有谁在linux下用c++读mysql数据库啊!有没有例子让小弟参考啊!急!!!!
  • 怎么在linux上用c程序调用mysql数据库,可以给一段例子么?
  • 关于mysql简单例子
  • ubuntu下设置mysql自动备份的例子
  • php mysql创建临时表的例子
  • MySQL 创建索引(Create Index)的方法和语法结构及例子
  • 谁能给出一个QT连接数据库(MySQL)的完整的例子,感激不尽,100分相赠。
  • Linux下启动多个mysql服务器例子
  • 有关mysql中ROW_COUNT()的小例子
  • MySql中使用INSERT INTO语句更新多条数据的例子
  • MySQL一个索引最多有多少个列?真实的测试例子
  • 优化mysql的limit offset的例子
  • php页面缓存的例子 php缓存降低mysql压力
  • php获取mysql字段名称和其它信息的例子
  • 450,我全部的分急求java应用程序操作mysql数据库的例子
  • 从一个MySQL的例子来学习查询语句
  • JAVA/JSP学习系列之六(MySQL翻页例子)
  • JAVA/JSP学习系列之八(改写MySQL翻页例子)
  • MySQL存储过程例子(包含事务,输出参数,嵌套调用)
  • Mysql查询错误:ERROR:no query specified原因
  • mysql启动错误之mysql启动报1067错误解决方法
  • mysql服务无法启动报错误1067解决方法(mysql启动错误1067 )
  • Mysql 本地计算机无法启动 mysql 服务 错误 1067:进程意外终止。
  • ubuntu mysql配置错误导致无法启动mysql,希望达人前来帮助。
  • 解析mysql数据库还原错误:(mysql Error Code: 1005 errno 121)
  • mysql安装过程中的错误
  • MySql 安装时的1045错误
  • mysql段错误
  • mysql 提示INNODB错误的解决方法
  • mysql常见错误集锦
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux忘记mysql密码处理方法
  • MySQL C API中有没有事务处理的函数啊?
  • 修改mysql密码与忘记mysql密码的处理方法
  • MySQL的化学处理扩展 Mychem
  • MySQL文本文件导入及批处理模式应用说明
  • MySQL 5.6 如何更改安全的处理密码探讨
  • mysql启用skip-name-resolve模式时出现Warning的处理办法
  • 请教:linux里取出mysql的数据为乱码,作了编码处理还是不行(java)
  • mysql从执行.sql文件时处理n换行的问题
  • 使用Linux的Shell脚本定时处理MySQL超时
  • mysql段错误 iis7站长之家
  • windows下配置apache+php+mysql时出现问题的处理方法
  • PHP处理SQL脚本文件导入到MySQL的代码实例
  • mysql错误处理之ERROR 1665 (HY000)
  • 解析mysql二进制日志处理事务与非事务性语句的区别
  • mysql常见的错误提示问题处理小结
  • mysql错误处理之ERROR 1786 (HY000)
  • 为mysql数据库添加添加事务处理的方法
  • MySQL数据入库时特殊字符处理详解
  • mysql出现“Incorrect key file for table”处理方法
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • php安装完成后如何添加mysql扩展
  • MySQL 重装MySQL后, mysql服务无法启动
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • MySQL Workbench的下载安装与使用教程
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3