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

Rov*_*ion 27 sql postgresql ddl alter-table table-rename

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

ALTER TABLE Users
    RENAME COLUMN userName TO user_name, 
    RENAME COLUMN realName TO real_name;
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 40

没有.

虽然可以组合其他行动,但这是不可能的RENAME.手册:

它的所有形式都ALTER TABLE作用于单个表,除了 RENAME,SET SCHEMAATTACH PARTITION,并且DETACH PARTITION可以组合成要一起应用的多个变更的列表.

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

其他行为ALTER COLUMN ... SET TYPE可能很昂贵,因为他们可能不得不重写整个表格.对于大表,在单个语句中尽可能多地做是明智的.