将列复制到 PostgreSQL 中的同一个表

ben*_*wad 4 database postgresql copy

我希望在没有停机的情况下重命名 PostgreSQL 中的列。我的代码将取决于列名,因此我想使用新名称以及现有列的内容和数据类型复制该列,然后在删除原始列之前推送代码更改。是否有用于将列及其内容复制到同一个表中的 Postgres 命令?

ben*_*wad 8

我在两个命令中找到了一种相对简单的方法:

ALTER TABLE mytable ADD COLUMN "new_column" <DATA TYPE STUFF FROM OLD COLUMN>;
UPDATE mytable SET new_column = old_column;
Run Code Online (Sandbox Code Playgroud)

没想到会这么容易。我没有锁定表,因为该列的使用频率不高,所以稍微减速就可以了。