use*_*052 17 mysql triggers mysql-error-1235
在MySQL中,我试图定义一个这样的触发器:
DELIMITER $$
CREATE TRIGGER vipInvite
AFTER INSERT ON meetings
FOR EACH ROW
BEGIN
IF(NOT EXISTS (SELECT * FROM participants
WHERE meetid = NEW.meetid AND pid ='vip'))
THEN
IF(EXISTS(SELECT * FROM meetings WHERE meetid = NEW.meetid AND slot > 16))
THEN
INSERT INTO participants(meetid, pid)
VALUES (NEW.meetid,(SELECT userid
FROM people WHERE people.group = 'tap' GROUP BY invite));
END IF;
END IF;
END $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
产生此错误:
此版本的MySQL尚不支持具有一个表的相同操作时间和事件的多个触发器.
有没有办法解决这个问题,所以我可以定义多个触发器?
pet*_*erm 27
此错误表示您已AFTER INSERT在meetings表上触发.
如果它是vipInvite您之前创建的相同触发器(含义),现在您想要替换它,那么您需要先将其删除
DROP TRIGGER vipInvite;
DELIMITER $$
CREATE TRIGGER vipInvite
...
END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
现在,如果您有其他触发器,则必须将两个触发器中的代码合并为一个,然后删除现有触发器,然后创建一个新触发器.
显示现有触发器的列表使用SHOW TRIGGERS.
SHOW TRIGGERS WHERE `table` = 'meetings';
Run Code Online (Sandbox Code Playgroud)