我的Postgres表中有一个列要删除过期的行。安全地做到这一点的最佳方法是什么?我的理解是,简单地为这些列写0是无效的,因为Postgres在Updates上创建了一个新行并将旧行标记为死。
是将列设置为null并手动清空以清除旧记录的最佳方法吗?
答案 0 :(得分:1)
我首先要说改变这样的数据是不好的做法 - 你正在改变历史。此外,下面只有一种方法(快速和肮脏的方式,不建议):
1首先备份数据库。 2打开PgAdmin,选择数据库,打开查询编辑器并运行查询。 3这将是这样的
UPDATE <table_name> SET <column_name>=<new value (eg null)>
WHERE <record is dead>
WHERE部分是根据您确定哪些行已死(例如,is_removed = true,is_deleted = true常用于识别软删除记录)来确定的。
显然你必须定期运行这个脚本。更好的方法是更新您的应用程序来完成这项工作。