我們如何將 SIGNAL 語句與 MySQL 觸發器一起使用?

PHPz
發布: 2023-09-12 18:53:07
轉載
1116 人瀏覽過

我们如何将 SIGNAL 语句与 MySQL 触发器一起使用?

實際上,MySQL SIGNAL 語句是一種錯誤處理機制,用於處理意外事件,並在需要時從應用程式正常退出。基本上,它向處理程序提供錯誤訊息。其基本語法如下 -

SIGNAL SQLSTATE | condition_value
[SET signal_information_item = value_1,[, signal_information_item] = value_2,
etc;]
登入後複製

此處,SIGNAL 關鍵字是 SQLSTATE 值或由 DECLARE CONDITION 語句聲明的條件名稱。 SIGNAL 語句必須始終指定 SQLSTATE 值或使用 SQLSTATE 值定義的命名條件。 SIGNAL 語句的 SQLSTATE 值由五個字元的字母數字代碼組成。我們不能以「00」開始我們自己的 SQLSTATE 程式碼,因為這樣的值表示成功並且對於發出錯誤訊號無效。如果我們的值無效,則會發生 Bad SQLSTATE 錯誤。對於捕獲所有錯誤處理,我們應該分配 SQLSTATE 值“45000”,這表示“未處理的使用者定義的異常”。

為了說明 SIGNAL 語句與 MySQL 觸發器的使用,我們使用在下面的範例中,我們在 Student_age 表上建立 BEFORE INSERT 觸發器。如果我們嘗試輸入小於 0 的年齡,它將使用 SIGNAL 語句拋出錯誤訊息。

範例

mysql> Create trigger before_insert_studentage BEFORE INSERT on
student_age FOR EACH ROW BEGIN IF NEW.age<0 then SIGNAL SQLSTATE
&#39;45000&#39; SET MESSAGE_TEXT = &#39;age less than 0&#39;; END if; END; //
Query OK, 0 rows affected (0.12 sec)

mysql> Insert into student_age(age, name) values(-10,&#39;gaurav&#39;)//
ERROR 1644 (45000): age less than 0
登入後複製

從上面的結果集中可以清楚地看出,如果我們嘗試插入小於 0 的年齡,那麼使用 SIGNAL 語句將會拋出錯誤。

以上是我們如何將 SIGNAL 語句與 MySQL 觸發器一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板