Quiero proteger algunas filas de la eliminación y prefiero hacerlo mediante desencadenadores en lugar de la lógica de mi aplicación. Estoy usando la base de datos MySQL.Proteger fila de eliminación en MySQL
Lo que se me ocurrió es la siguiente:
DELIMITER $$
DROP TRIGGER `preserve_permissions`$$
USE `systemzarzadzaniareporterami`$$
CREATE TRIGGER `preserve_permissions`
AFTER DELETE ON `permissions`
FOR EACH ROW
BEGIN
IF old.`userLevel` = 0 AND old.`permissionCode` = 164 THEN
INSERT INTO `permissions` SET `userLevel`=0, `permissionCode`=164;
END IF;
END$$
DELIMITER ;
pero me da un error cuando se utiliza borrar:
DELETE FROM `systemzarzadzaniareporterami`.`permissions`
WHERE `userLevel` = 0 AND `permissionCode` = 164;
Error Code: 1442. Can't update table 'permissions' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
¿Hay otra manera de hacer tal cosa?