我的 Postgres 表中有一个列,我想为过期的行删除它。安全地执行此操作的最佳方法是什么?据我了解,简单地为这些列写 0 是无效的,因为 Postgres 在更新时创建一个新行并将旧行标记为死行。
最好的方法是将列设置为 null 并手动清理旧记录吗?
最佳答案
我首先要说的是,像这样更改数据是不好的做法 - 您正在更改历史。此外,以下只是执行此操作的一种方法(一种快速而肮脏的方法,不推荐):
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 通常用于识别软删除记录)来确定。
显然,您必须定期运行此脚本。更好的方法是更新您的应用程序来完成这项工作。
关于ruby-on-rails - 删除 Postgres 列数据的最有效、最安全的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35022732/