我想定义一个触发器来检查特定值的条目数,并且如果数字大于三,则不允许使用该特定行来输入新行。但是它会引发错误。 这里是我的代码:重复sql行上的触发器
delimiter $$
CREATE TRIGGER `timeslotattendantcheck`
BEFORE INSERT ON `attendants`
FOR EACH ROW
BEGIN
DECLARE v_dup int;
SET v_dup = (SELECT COUNT(*) from attendants where attendant = NEW.attendant);
if v_dup > 3 then
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Too many attendants for one time slot. The insert is cancelled.';
end if;
end $$
delimiter ;
让我们不提它抛出的错误。 – 2014-10-20 19:59:15
你在你的sql语法中有错误;请查看与您的mysql服务器版本对应的'signal sqlstate'45000'设置message_text ='太多的服务员一次性'在第5行的手册 – gnas 2014-10-20 20:01:17
您使用的是什么版本的MySQL? – 2014-10-20 20:02:44