将记录标记为删除而不是从mysql表中删除记录

时间:2013-06-30 18:56:49

标签: php mysql

我想知道如何继续将记录标记为已删除而不是从数据库中物理删除记录。我之前从未遇到过这样的事情。我可以遵循任何教程吗?

3 个答案:

答案 0 :(得分:2)

最简单的方法是将新的BOOL列添加到表格enabled,其默认值为1

然后UPDATE table_name SET enabled = 0当您要“删除”该行时。

并过滤掉查询中的“已删除”行,如:

SELECT * FROM table_name WHERE ... AND enabled = 1

答案 1 :(得分:1)

在表中使用额外的布尔字段来表示条目是否有效。

TableName(<Your Fields>,Valid)

有效期= 1,然后存在。

有效期= 0,然后删除。

答案 2 :(得分:1)

MySQL没有任何内在功能可以将记录标记为已删除 - 但您可以添加自己的列来描述状态 - 您只需要记住将其从查询中排除。当您尝试插入与您的已删除记录匹配的唯一/主键的行时,会出现此复杂情况;你需要添加一个触发器来修改状态。真正一个更简单的选择就是首先删除数据(你没有说明你想要通过不删除行来实现的目标)