PostgreSQL query to rename and change column type with single query

前端 未结 2 1911
执笔经年
执笔经年 2021-01-31 02:16

In PostgreSQL if I need to rename and change a column data type, I run two separate queries to do so.

To rename:

AL         


        
相关标签:
2条回答
  • 2021-01-31 02:35

    In PostgreSQL, ALTER TABLE can take a series of operations. So:

    ALTER TABLE <tablename> RENAME <oldcolumn> TO <newcolumn>;
    ALTER TABLE <tablename> ALTER COLUMN <columnname> TYPE <newtype>;
    

    is the same as

    ALTER TABLE <tablename> 
      ALTER COLUMN <columnname> TYPE <newtype>
      RENAME <oldcolumn> TO <newcolumn>;
    

    However... why? IIRC the rename won't cause a full-table scan, so there's no benefit over just doing the two statements separately, within one transaction. What problem are you actually trying to solve with this?

    0 讨论(0)
  • 2021-01-31 02:39

    PostgreSQL: Alter table column name and data-type:

    ALTER TABLE <TableName> 
       ALTER [ COLUMN ] column [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
      RENAME [ COLUMN ] column TO new_column;
    

    See ALTER TABLE.

    0 讨论(0)
提交回复
热议问题