国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石泉县| 钟山县| 河北省| 蓬莱市| 榆社县| 荣昌县| 松潘县| 出国| 如东县| 石楼县| 南召县| 彝良县| 黄平县| 盐边县| 明水县| 嘉义市| 惠水县| 涟水县| 红原县| 犍为县| 故城县| 贵定县| 望都县| 泸州市| 永登县| 珲春市| 阳原县| 正镶白旗| 南漳县| 江口县| 富民县| 沐川县| 建德市| 怀柔区| 琼海市| 固始县| 贞丰县| 土默特右旗| 三门峡市| 荥经县| 博兴县|