是否可以在单个语句中重命名多个列,类似于以下内容:
ALTER TABLE Users RENAME COLUMN userName TO user_name, RENAME COLUMN realName TO real_name;
不。
尽管可以组合其他操作,但使用则无法实现RENAME。手册:
RENAME
所有形式ALTER TABLE在单个表该行为,除了 RENAME,SET SCHEMA,ATTACH PARTITION,和DETACH PARTITION可以组合成多种变更的列表要被施加到一起。
ALTER TABLE
SET SCHEMA
ATTACH PARTITION
DETACH PARTITION
由于这RENAME是对系统目录的微小操作,因此运行多个语句不会有任何危害。在单个事务中执行此操作,以最大程度地减少锁定开销。
诸如此类的其他动作ALTER COLUMN ... SET TYPE可能很昂贵,因为它们可能必须重写整个表。对于大表,明智的做法是在单个语句中尽可能多地执行操作。
ALTER COLUMN ... SET TYPE