易截截图软件、单文件、免安装、纯绿色、仅160KB

Mysql存储过程(四)——异常处理

有时候,不希望存储过程抛出错误中止执行,而是希望返回一个错误码。
Mysql
支持异常处理,通过定义
CONTINUE/EXIT
异常处理的
HANDLER
来捕获
SQLWARNING/NOT FOUND/SQLEXCEPTION
(警告
/
无数据
/
其他异常)。其中,
FOR
后面可以改为
SQLWARNING,
NOT FOUND, SQLEXCEPTION
来指示所有异常都处理,相当于
oracle
中的
others
。例如,当不进行异常处理时,以下代码将直接抛出一个
ERROR 1062 (23000)
错误:
        
Sql
code 4-1:
CREATE PROCEDURE test_proc_ins1(
IN i_id INT,
IN i_name VARCHAR(100)
)
BEGIN
INSERT INTO testproc VALUES (i_id,i_name);
INSERT INTO testproc VALUES (i_id,i_name);
END;
 
经过异常处理后,可以避免抛出错误,而是定义一个返回参数
o_ret
赋予特殊值来表示失败,这样,在
java
代码中,可以通过获取返回值而不是捕获异常的方式来处理业务逻辑。例如将返回值设置为
-1:
        
Sql
code 4-2:
CREATE PROCEDURE test_proc_ins1(
IN i_id INT,
IN i_name VARCHAR(100),
OUT o_ret INT)
BEGIN
DECLARE EXIT HANDLER FOR SQLSTATE '23000' set o_ret = -1;
-- 也可以这样使用:
-- DECLARE EXIT HANDLER FOR SQLWARNING,NOT FOUND,SQLEXCEPTION set o_ret=-1;
INSERT INTO testproc VALUES (i_id,i_name);
INSERT INTO testproc VALUES (i_id,i_name);
set o_ret = 1;
END;


相关文档:

mysql安装的过程

   今天重新装了一下mysql数据库,截止到现在已耗时2:30,郁闷!!!!(我原来不知道装过多少次mysql)
   所以我决定,把关于mysql数据库的初始化操作介绍一下

    1.安装mysql数据库
       http://www.duote.com/tech/1/2430_1.html
  ......

MySQL 添加外键

MySQL 添加外键
DROP TABLE IF EXISTS `nation`;
CREATE TABLE `nation`(
    `pii_Nation` smallint(2) unsigned NOT NULL default '0',
    `pii_NatinoName` varchar(40) NOT NULL default '',
    PRIMARY KEY  (`pii_Nation`)
)ENGINE=InnoDB DEFAULT CHARSE ......

mysql root 密码忘记????

今天给新来的员工连接数据库,修改了一下mysql root用户的密码,我下载的是打包的redMine,默认密码是空,修改密码之后重启redmine,phpAdmin 链接不上mysql数据库了,我也修改了phpadmin文件夹下的config.inc.php的密码,还是不行,提示#1130 - Host 'localhost' is not allowed to connect to this MySQL server错误,明 ......

MySQL my.ini 配置文件详解


  (1)、back_log:
  要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。
  back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接, ......

mysql乱码问题

在PHP代码段前面运行以下语句
@mysql_connect($host,$user,$password);
@mysql_query('SET NAMES "UTF8"');
@mysql_query('SET COLLATION_CONNECTION=utf8_general_ci'); 
或者在MYSQL中运行一次:
SET NAMES "UTF8";
SET COLLATION_CONNECTION=utf8_general_ci
一劳永逸
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号