删除Postgres列数据的最有效,最安全的方法

时间:2016-01-26 19:57:08

标签: ruby-on-rails postgresql

我的Postgres表中有一个列要删除过期的行。安全地做到这一点的最佳方法是什么?我的理解是,简单地为这些列写0是无效的,因为Postgres在Updates上创建了一个新行并将旧行标记为死。

是将列设置为null并手动清空以清除旧记录的最佳方法吗?

1 个答案:

答案 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常用于识别软删除记录)来确定的。

显然你必须定期运行这个脚本。更好的方法是更新您的应用程序来完成这项工作。