是否有可能使 MySQL 中的一行处于非活动状态?那么查询结果中不再使用这一行?
我的客户希望保留已删除的成员存在于数据库中,但我不想编辑所有查询来检查成员是否已删除。
或者是否有一种简单的方法将整个行数据移动到另一个“非活动”表中?
您可以重命名当前表,在其中创建“已删除”列,然后创建一个与当前表同名的视图,选择所有已删除=0 的位置。这样您就不必更改所有查询。如果您为删除列提供默认值,则该视图将是可更新的。
_
CREATE TABLE my_new_table (col1 INTEGER,
col2 INTEGER,
col3 INTEGER,
deleted INTEGER NOT NULL DEFAULT 0);
INSERT INTO my_new_table (col1, col2, col3)
SELECT (col1, col2, col3)
FROM my_table;
DROP TABLE my_table;
CREATE VIEW my_table (col1, col2, col3)
AS SELECT (col1, col2, col3)
FROM my_new_table
WHERE deleted = 0;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)