mysql資料庫異常 MySQL資料庫的異常處理

2021-10-19 19:33:44 字數 1738 閱讀 3570

對於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 列表

比如我的/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資料庫效能資料 MYSQL資料庫效能優化

1.選取最適用的字段屬性 表中字段的寬度設得盡可能小 char 的上限為 255 位元組 固定占用空間 varchar 的上限 65535 位元組 實際占用空間 text 的上限為 65535。盡量把字段設定為 not null,執行查詢的時候,資料庫不用去比較 null 值。2.使用連線 join...

MySQL資料庫使用 MySQL資料庫管理

開發時一般不使用系統的root使用者,應該是建立乙個新的使用者,管理乙個工程。登入使用者的命令 mysql uusername p 登入完成後就進入sql命令格式,格式以 結尾。windows用安裝的時候設定的root登入命令列,如下圖所示。linux安裝時若沒有提示設定root密碼的,可以使用系統...

MySQL資料庫 一 MySQL資料庫簡介

mysql資料庫是常見的資料庫,對mysql資料庫的學習主要從下面幾方面展開,記得點開檢視哦!1.mysql c s架構 mysql的架構是c s架構,即客戶端 伺服器的架構 在root使用者下進行 mysql字元編碼 檢視mysql預設的字元編碼 預設的字元編碼是latin1 show varia...