0
我想設置一個觸發器,以便插入不會發生如果條件不滿足。Mysql防止插入不符合插入觸發條件
我以爲下面是做到這一點的方式,但我不知道
我得到一個錯誤 /* SQL錯誤1407:錯誤的SQLSTATE:「45000」 */
燦任何人都會讓我知道爲什麼我得到這個錯誤,以及如果在mysql中不符合條件時阻止插入的最佳方式。
DELIMITER $$
SHOW WARNINGS$$
USE `warrington_central`$$
CREATE TRIGGER before_insert_image_comment_section_check
BEFORE INSERT ON image_comment FOR EACH ROW
BEGIN
DECLARE error_msg varchar(255);
IF New.section != (SELECT id from section where section = "image")
THEN SET error_msg = "Cannot insert a comment into this section as it is the wrong section type";
SIGNAL SQLSTATE '45000 'SET MESSAGE_TEXT = error_msg;
END IF;
END
$$
SHOW WARNINGS$$
感謝什麼信號SQLSTATE'45000'SET MESSAGE_TEXT = error_msg;實際上,這會妨礙插入 - 只是在線閱讀它45000是什麼意思 –
@MatthewChambers SIGNAL是從觸發器「返回」錯誤的方式,'45000'的意思是「未處理的用戶定義的異常」。這是錯誤代碼。 MESSAGE_TEXT是錯誤消息的可選明文版本。是的,它應該停止發生插入。 –