WEB开发网
开发学院数据库MySQL MySQL数据库的异常处理 阅读

MySQL数据库的异常处理

 2010-09-06 15:58:51 来源:WEB开发网   
核心提示:我们可以看到,始终执行到最后,MySQL数据库的异常处理(3),当然,上面的SQLSTATE ’23000’可以替换为1062,警告:mysql> alter table t add s2 int not null;Query OK, 0 rows affected (0.01 sec)R

我们可以看到,始终执行到最后。

当然,上面的SQLSTATE ’23000’可以替换为1062。

警告:

mysql> alter table t add s2 int not null;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

这个列没有默认值,插入的时候会出现警告或者1364错误提示。

mysql> DELIMITER $$
mysql> drop PROCEDURE IF exists `t_girl`.`handlerdemo`$$
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> create DEFINER=`root`@`localhost` PROCEDURE `handlerdemo`()
-> BEGIN
-> DECLARE CONTINUE HANDLER FOR 1062 BEGIN END;
-> DECLARE CONTINUE HANDLER FOR SQLWARNING
-> BEGIN
-> update t set s2 = 2;
-> END;
-> DECLARE CONTINUE HANDLER FOR 1364
-> BEGIN
-> insert INTO t(s1,s2) VALUES (1,3);
-> END;
-> SET @x = 1;
-> insert INTO t(s1) VALUES (1);
-> SET @x = 2;
-> insert INTO t(s1) VALUES (1);
-> SET @x = 3;
-> END$$
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
mysql> call handlerdemo();
Query OK, 0 rows affected (0.00 sec)
mysql> select * from t;
+----+----+
| s1 | s2 |
+----+----+
| 1 | 3 |
+----+----+

1 row in set (0.00 sec)

遇到错误时,插入的新记录。

mysql> select @x;

+------+

| @x |

+------+

| 3 |

+------+

1 row in set (0.00 sec)

上一页  1 2 3 

Tags:MySQL 数据库 异常

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接