PostgreSQL使用多个重命名表达式时出现语法错误。

3

我正在尝试编写一个查询,可以同时重命名多个表列。根据文档,语法如下:

ALTER TABLE table_name
RENAME old_col_a AS new_col_a
, RENAME old_col_b AS new_col_b...;

然而,这样做会导致语法错误,错误位于第一个RENAME子句后的逗号处。
ERROR:  syntax error at or near ","
LINE 3: , RENAME 
    ^
SQL state: 42601
Character: 1

这个查询适用于多个DROP/ALTER/ADD列和单个RENAME。我无论如何都弄不清为什么会出现这个错误。


2
手册上说了什么? - jarlh
如果您正在关注http://www.postgresqltutorial.com/postgresql-rename-column/,其中声称可以同时进行多个重命名的观点似乎与官方文档不一致。 - Caius Jard
1个回答

6

您需要使用多个ALTER语句:

ALTER TABLE table_name
RENAME COLUMN old_col_a TO new_col_a;

ALTER TABLE table_name
RENAME COLUMN old_col_b TO new_col_b;

ALTER TABLE

除了RENAME、SET SCHEMA、ATTACH PARTITION和DETACH PARTITION等只作用于单个表的ALTER TABLE形式外,所有其他形式都可以组合成多个修改操作的列表一起应用。例如,可以在一个命令中添加多个列和/或修改多个列的类型。这在处理大型表格时特别有用,因为只需要进行一次扫描。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接