我有一个数据库,客户想要在其中运行DELETE
语句。但在数据库方面,记录应该只是隐藏而不是删除。
我可以使用 aBEFORE DELETE TRIGGER
将visiblity
标志更改为false
而不是删除记录吗?
我有一个数据库,客户想要在其中运行DELETE
语句。但在数据库方面,记录应该只是隐藏而不是删除。
我可以使用 aBEFORE DELETE TRIGGER
将visiblity
标志更改为false
而不是删除记录吗?
我认为在 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
根据需要更新标志。