使用PostgreSQL在一个语句中重命名多个列

时间:2014-04-24 16:30:39

标签: sql postgresql ddl alter-table table-rename

是否可以在单个语句中重命名多个列,类似于:

ALTER TABLE Users
    RENAME COLUMN userName TO user_name, 
    RENAME COLUMN realName TO real_name;

1 个答案:

答案 0 :(得分:36)

虽然可以合并其他操作,但RENAME无法实现。 The manual:

  

所有ALTER TABLE形式的单个表格,除了   RENAMESET SCHEMAATTACH PARTITIONDETACH PARTITION都可以   合并为一起应用的多个变更列表。

由于RENAME是对系统目录的微小操作,因此运行多个语句没有任何害处。在单个事务中执行此操作以最小化锁定开销。

ALTER COLUMN ... SET TYPE等其他操作可能很昂贵,因为他们可能需要重写整个表格。对于大表,最好在一个语句中尽可能多地做。