[英]Mysql Prevent insert with insert trigger condition not met
我正在尝试设置触发器,以便在不满足条件的情况下不会发生插入。
我以为下面是做到这一点的方法,但我不确定
我收到错误/ * 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$$
除非先前使用DECLARE ... CONDITION声明,否则SQLSTATE必须为5个字符串。
SIGNAL SQLSTATE '45000 'SET MESSAGE_TEXT = error_msg;
您正在尝试将SQLSTATE设置为4个字符(长度为45000)(请注意空格)。 固定间距,您不应再看到该消息(它也反映在您的错误消息中,但该空格有点难以看到)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.