国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

帶你輕松接觸MySQL數據庫的異常處理

2019-09-08 23:27:04
字體:
來源:轉載
供稿:網友

對于MySQL的異常處理,本人不常用。不過我覺得還是有寫下來的必要。

標準格式

以下為引用的內容:

 DECLARE handler_type HANDLER FOR condition_value[,...] statement
  handler_type:
  CONTINUE
  | EXIT
  | UNDO --暫時不支持
  condition_value:
  SQLSTATE [VALUE] sqlstate_value
  | condition_name
  | SQLWARNING
  | NOT FOUND
  | SQLEXCEPTION
  | mysql_error_code

  condition_value細節

1、MySQL ERROR CODE 列表

如果需要查看更多的錯誤列表可以直接到MySQL安裝路徑下。

比如我的/usr/local/mysql/share/mysql/errmsg.txt

說明:SQLSTATE [VALUE] sqlstate_value這種格式是專門為ANSI SQL 和 ODBC以及其他的標準.

并不是所有的MySQL ERROR CODE 都映射到SQLSTATE。

2、假如不需要插入ERROR CODE,可以用速記條件來代替

SQLWARNING 代表所有以01開頭的錯誤代碼

NOT FOUND 代表所有以02開頭的錯誤代碼,當然也可以代表一個游標到達數據集的末尾。

SQLEXCEPTION 代表除了SQLWARNING和NOT FOUND 的所有錯誤代碼。

3、具體示例:

以下為引用的內容:

  create TABLE t (s1 int,primary key (s1));
  mysql> use t_girl
  Database changed
  mysql> create TABLE t (s1 int,primary key (s1));
  Query OK, 0 rows affected (0.00 sec)
  mysql>
  mysql>
  mysql> DELIMITER ||
  mysql> create PROCEDURE handlerdemo ()
  -> BEGIN
  -> DECLARE EXIT HANDLER FOR SQLSTATE ’23000’ BEGIN END; -- 遇到重復鍵值就退出
  -> SET @x = 1;
  -> insert INTO t VALUES (1);
  -> SET @x = 2;
  -> insert INTO t 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 @x;
  +------+
  | @x |
  +------+
  | 2 |
  +------+
  1 row in set (0.00 sec)
  mysql> call handlerdemo();
  Query OK, 0 rows affected (0.00 sec)
  mysql> select @x;
  +------+
  | @x |
  +------+
  | 1 |
  +------+
  1 row in set (0.00 sec)
  mysql>

MYSQL

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 当涂县| 洞口县| 临夏县| 靖远县| 深泽县| 邢台市| 姜堰市| 石棉县| 辽宁省| 大理市| 台前县| 定边县| 敖汉旗| 崇阳县| 鹤壁市| 姚安县| 广元市| 宜城市| 寿宁县| 长乐市| 濉溪县| 宕昌县| 鹤岗市| 隆林| 珲春市| 积石山| 乐昌市| 南部县| 潞城市| 巴彦县| 衢州市| 新兴县| 陇西县| 左云县| 巴彦县| 都兰县| 读书| 宁化县| 剑河县| 阿拉善右旗| 盘山县|