ruby-on-rails - 删除 Postgres 列数据的最有效、最安全的方法

标签 ruby-on-rails postgresql

我的 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/

相关文章:

postgresql - 在 Cloudformation 模板中创建 Postgres RDS 时出现问题

sql - 在数据库中存储用户设置

ruby-on-rails - 使用 constantize 在 ruby​​ 中远程执行代码

ruby - 不存在关系时的postgres内部连接总和

postgresql - IP 地理定位查询太慢

ruby-on-rails - Rails 选择具有 NULL 值的 bool 值

java - 使用 spring boot 从 Secret Manager GCP 获取值

ruby-on-rails - gem 安装 rmagick 错误

javascript - 为什么在带有 Bootstrap 的 Rails 6 中使用 webpacker 时我的 js.erb View 不起作用?

ruby-on-rails - 从 Rails 中的用户电子邮件地址发送电子邮件的最可靠方法?