如何使用触发器来防止删除表而不是更新?

tvz2xvvm  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(336)

我想在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 ;

我找不到这样的东西。

wkftcu5l

wkftcu5l1#

在mysql中,如果不抛出错误,就不能中止删除。不能使用before delete触发器来实现软删除机制。这是个错误的方法。您应该在应用程序中实现软删除机制。

相关问题