-1

我有一个数据库,客户想要在其中运行DELETE语句。但在数据库方面,记录应该只是隐藏而不是删除。

我可以使用 aBEFORE DELETE TRIGGERvisiblity标志更改为false而不是删除记录吗?

4

1 回答 1

1

我认为在 MySQL 中做到这一点的唯一方法(正如 Alex Monthy 暗示的那样,这真的是这个逻辑所属的地方吗?)是使用删除触发器重新插入visibility标志设置为 false 的记录:

CREATE TRIGGER foo AFTER DELETE ON my_table FOR EACH ROW
  INSERT INTO my_table (visibility,     colA,     colB,     colC)
                VALUES (     false, OLD.colA, OLD.colB, OLD.colC);

可以从前触发器中止删除操作(只需使触发器引发错误,例如调用不存在的过程),但这不会使您能够visibility根据需要更新标志。

于 2012-05-08T00:32:20.800 回答