对于一个表mysql错误,具有相同操作时间和事件的多个触发器
我不熟悉触发器,对于一个表错误,使用相同的操作时间和事件获取多个触发器 我创建了一个后更新和后删除,这是两个独立的操作时间/事件,因此我不确定为什么会出现错误 我的问题是:对于一个表mysql错误,具有相同操作时间和事件的多个触发器,mysql,triggers,Mysql,Triggers,我不熟悉触发器,对于一个表错误,使用相同的操作时间和事件获取多个触发器 我创建了一个后更新和后删除,这是两个独立的操作时间/事件,因此我不确定为什么会出现错误 我的问题是: CREATE TRIGGER `new_enrolment` AFTER INSERT ON `mdl_user_enrolments` FOR EACH ROW BEGIN INSERT INTO c_master ( ud, firstname, lastname, email, username, cid, cours
CREATE TRIGGER `new_enrolment` AFTER INSERT ON `mdl_user_enrolments` FOR EACH ROW BEGIN
INSERT INTO c_master (
ud,
firstname,
lastname,
email,
username,
cid,
course
)
SELECT
mdl_user.id AS uid,
mdl_user.firstname,
mdl_user.lastname,
mdl_user.email,
mdl_user.suspended,
mdl_user.username,
mdl_enrol.courseid AS cid,
mdl_course.fullname AS course
FROM mdl_user_enrolments INNER JOIN mdl_enrol ON mdl_user_enrolments.enrolid = mdl_enrol.id
INNER JOIN mdl_course ON mdl_enrol.courseid = mdl_course.id
INNER JOIN mdl_user ON mdl_user.id = mdl_user_enrolments.userid
WHERE userid = NEW.userid;
END;
CREATE TRIGGER `remove_enrolment` AFTER DELETE ON `mdl_user_enrolments` FOR EACH ROW BEGIN
SELECT mdl_enrol.courseid,
mdl_user_enrolments.userid,
mdl_user_enrolments.enrolid
FROM mdl_user_enrolments INNER JOIN mdl_enrol ON mdl_user_enrolments.enrolid = mdl_enrol.id
WHERE mdl_user_enrolments.enrolid = OLD.enrolid
DELETE FROM c_master
WHERE uid = OLD.userid AND mdl_enrol.courseid;
END;
由于我对所有这些都不熟悉,我可能错过了一些简单的东西。Brian,可能您在表中添加和删除了几次相同的触发器,但您上次在再次创建它之前忘记了删除它。确保在使用重新创建之前已将其删除
DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name
然后
CREATE TRIGGER ....
文档。Brian,可能您已经在表中添加和删除了几次相同的触发器,但您上次在再次创建它之前忘记了删除它。确保在使用重新创建之前已将其删除
DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name
然后
CREATE TRIGGER ....
文件