小编典典

PostgreSQL查询以单个查询重命名和更改列类型

sql

在PostgreSQL中,如果我需要重命名和更改列数据类型,则需要运行两个单独的查询。

重命名:

ALTER TABLE tblName RENAME <oldColumn> TO <newColumn>

并更改列类型:

ALTER TABLE tblName ALTER COLUMN <newColumn> <columnType>.

但是有什么方法可以通过单个查询来完成这两项工作,例如以下MySQL查询:

ALTER TABLE tblName CHANGE COLUMN <oldColumn> <newColumn> <columnType>

阅读 193

收藏
2021-04-15

共1个答案

小编典典

在PostgreSQL中,ALTER TABLE可以采取一系列操作。所以:

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

是相同的

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

但是…为什么呢?IIRC重命名不会引起全表扫描,因此仅在一个事务中单独执行两个语句就没有任何好处。您实际上是想解决什么问题?

2021-04-15