繁体   English   中英

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

[英]flag record as delete instead of deleting the record from mysql table

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

最简单的方法是向表中添加一个新的BOOL列,如enabled默认值1

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

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

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

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

TableName(<Your Fields>,Valid)

有效值= 1,然后它存在。

有效值= 0,然后删除。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM