【问题标题】:Renaming multiple columns in one statement with PostgreSQL使用 PostgreSQL 在一条语句中重命名多个列
【发布时间】:2014-06-10 01:54:31
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    没有。

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

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

    由于RENAME 是对系统目录的微小操作,因此运行多个语句并没有什么坏处。在单个事务中执行以最小化锁定开销并避免具有中间状态的竞争条件(然后对所有其他事务不可见)。

    ALTER COLUMN ... SET TYPE 这样的其他操作可能很昂贵,因为它们可能必须重写整个表。对于大表,明智的做法是尽可能在单个语句中完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      • 2022-11-11
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      相关资源
      最近更新 更多