更改大型PostgreSQL表上的列精度

时间:2019-01-09 08:56:22

标签: ruby-on-rails postgresql

最近,我不得不更改PostgreSQL表上一列的精度。 该表非常大(超过1000万行)。

所以我是通过Rails迁移做到的:

change_column(:my_table, :amount, :decimal, precision: 30, scale: 8, default: 0.0)

转换为此SQL:

ALTER TABLE "my_table" ALTER COLUMN "amount" TYPE decimal(30,8)

除了将数据库挂起15分钟之外,其他都不错。据我了解,迁移期间确实不需要更改任何数据,但是我想PostgreSQL仍在重写行。

有没有办法让PostgreSQL仅在更新行时重写行,而不是在像这样更改列精度时执行大量重写?

0 个答案:

没有答案