【发布时间】:2019-03-21 23:41:25
【问题描述】:
Aurora PostgreSQL,版本 10.4。
我有一张有几百万行的表。其中一列定义为character varying(255)。曾几何时,255 是足够的空间,但现在它不是,所以我必须做更多。
我找到了这个in the PG 9.1 release notes:
- 允许 ALTER TABLE ... SET DATA TYPE 以避免在适当的情况下重写表(Noah Misch、Robert Haas)
例如,将 varchar 列转换为文本不再需要重写表。但是,增加 varchar 列的长度约束仍然需要重写表。
这表明更改为更长的varchar 是不切实际的(因为重写该大小的表会锁定它很长时间),但更改为text 会起作用。这是正确的吗?
在进行此类更改时,我还应该了解哪些其他事项?显然,我想避免数据丢失,而且我不能让这个表在短时间内无法访问。
【问题讨论】:
标签: postgresql