我想在mysql中实现软删除使用触发器和做一个更新,而不是删除。后来我发现mysql没有instead of触发器。
所以我想使用before触发器,但是我找不到任何方法在不抛出错误的情况下中止删除。
我在找这样的东西:
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 ;
我找不到这样的东西。
1条答案
按热度按时间wkftcu5l1#
在mysql中,如果不抛出错误,就不能中止删除。不能使用before delete触发器来实现软删除机制。这是个错误的方法。您应该在应用程序中实现软删除机制。