我想使用触发器在MySQL中实现软删除,并执行更新而不是删除。然后我发现mysql没有触发器代替。
因此,我想使用“触发前”功能,但是我找不到在不引发错误的情况下中止删除的任何方法。
我正在寻找这样的东西:
use testdb;
DELIMITER $$
CREATE TRIGGER `table1_before_delete` BEFORE DELETE ON `table1`
FOR EACH ROW
BEGIN
call abort_delete_and_dont_raise_error();
UPDATE table1 SET deleted_at=NOW() where id=old.id;
END$$
DELIMITER ;
我找不到这样的东西。
答案 0 :(得分:0)
在不抛出错误的情况下,您无法中止Mysql中的删除。您不应使用删除之前的触发器来实现软删除机制。这是错误的方式。您应该在应用程序中实现软删除机制。