使用PostgreSQL一条语句来重命名多列

53

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

ALTER TABLE Users
    RENAME COLUMN userName TO user_name, 
    RENAME COLUMN realName TO real_name;
1个回答

80

编号.

虽然其他操作可以组合在一起,但RENAME不能。 手册:

所有只作用于单个表的ALTER TABLE形式(除了RENAMESET SCHEMAATTACH PARTITIONDETACH PARTITION)都可以组合成多个一起应用的更改列表。

由于RENAME是对系统目录的微小操作,因此运行多个语句不会造成任何损害。为了最小化锁定开销并避免与中间状态发生竞争条件(这些状态对所有其他事务都不可见),请在单个事务中执行它们。

其他操作,如ALTER COLUMN ... SET TYPE,可能会非常昂贵,因为它们可能需要重写整个表。对于大表格,尽可能在单个语句中完成尽可能多的操作是明智的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接