Buenas, es la primera vez que cuelgo un post pidiendo ayuda, ya que me gusta encontrar las cosas por mi mismo. Pero esta vez he probado con todo y no soy capaz de ver porque no me sale.
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
$$
Y el de users:
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 ;
Si alguien sabe la respuesta, o sabe el porque lo estoy haciendo mal, estaría muy agradecido.
Un saludo, ánimo y suerte :D