我想知道如何继续将记录标记为已删除,而不是从数据库中物理删除记录。我以前从来没有遇到过这样的事情。有什么我可以学习的教程吗?
问问题
1278 次
3 回答
2
最简单的方法是向表中添加一个新的 BOOL 列,例如enabled
默认值为1
.
然后UPDATE table_name SET enabled = 0
,当您想“删除”该行时。
并过滤掉查询中的“已删除”行,例如:
SELECT * FROM table_name WHERE ... AND enabled = 1
于 2013-06-30T18:59:36.840 回答
1
MySQL 中没有任何内在的东西可以将记录标记为已删除 - 但您可以添加自己的列来描述状态 - 您只需要记住将其从查询中排除。当您尝试插入具有与已删除记录匹配的唯一/主键的行时,就会出现复杂情况;您需要添加触发器来修改状态。真正更简单的选择是首先删除数据(您不会说通过不删除行来实现的目标)
于 2013-06-30T19:03:45.440 回答
1
在表中使用额外的布尔字段来表示条目是否有效。
TableName(<Your Fields>,Valid)
有效 =1 ,则存在。
有效=0,则删除。
于 2013-06-30T18:59:58.220 回答