update trigger tipos son limitaciones insertar hacer existen ejemplos disparadores despues desencadenadores cuáles como and mysql triggers

tipos - trigger mysql update



desencadenadores múltiples con el mismo tiempo de acción y evento para un error de tabla mysql (1)

Brian, probablemente has estado agregando y quitando el mismo disparador unas cuantas veces en tu mesa y te has olvidado de eliminarlo la última vez antes de volver a crearlo. Asegúrate de haberlo eliminado antes de volver a crear usando

DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name

y entonces

CREATE TRIGGER ....

Documentación aquí .

Soy nuevo en los desencadenantes y obtengo el error "múltiples activadores con el mismo tiempo de acción y evento para una sola tabla".

He creado una actualización DESPUÉS y una DESPUÉS de eliminar, que son dos eventos / tiempo de acción separados, así que no estoy seguro de por qué recibiría el error.

Aquí está mi consulta:

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;

Como soy nuevo en todo esto, probablemente me esté perdiendo algo simple.