Tôi muốn bảo vệ một số hàng khỏi việc xóa và tôi muốn thực hiện việc này bằng cách sử dụng trình kích hoạt thay vì logic của ứng dụng của tôi. Tôi đang sử dụng cơ sở dữ liệu MySQL.Bảo vệ hàng khỏi việc xóa trong MySQL
Những gì tôi đã đưa ra là thế này:
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 ;
Nhưng nó mang lại cho tôi một lỗi khi tôi sử dụng xóa:
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.
Có một cách khác để làm một điều như vậy?