Necesito crear para mi web un trigger que me cree las relaciones entre la base de datos automáticamente. Se trata de dos tablas la de usuarios y la de privilegios, que en una relación N:M se crea una tercera tabla llamada UserPrivileges. Necesito que al entrar un usuario se cree automáticamente todos los privilegios en la N:M que existan en la tabla de privilegios, y viceversa, que cuando cree un privilegio se les sume a todos los usuarios el nuevo privilegio en type = reject.
El Trigger para los privilegios creo que está bien y ha de funcionar, pero como no me funciona el de usuarios no puedo provarlo. El de privilegios es este:
Código PHP:
delimiter $$
CREATE TRIGGER privilegeInsert BEFORE INSERT ON Privilege
FOR EACH ROW
BEGIN
INSERT INTO UsersPrivilege SET privilege = NEW.privilege;
UPDATE UsersPrivilege SET type = 'reject' where privilege = NEW.privilege;
END
$$
Código PHP:
CREATE TRIGGER userInsert AFTER INSERT ON Users
FOR EACH ROW
BEGIN
declare i int;
i = (SELECT idPrivilege FROM Privilege ORDER BY idPrivilege DESC LIMIT 1);
WHILE i > 0 DO
INSERT INTO UsersPrivilege SET idUser = (SELECT idUser FROM Users ORDER BY idUser DESC LIMIT 1); AND SET
usersPrivilegeType = 'reject' AND SET privilege = (SELECT privilege FROM privilege where idPrivilege = i);
END;
END
$$
delimiter ;
Un saludo, ánimo y suerte :D