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

时间:2018-12-13 19:53:44

标签: sql postgresql alter-table

我正在尝试编写一个查询,以一次重命名多个表列。根据文档,语法为:

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。我一生都无法弄清楚为什么会发生此错误。

1 个答案:

答案 0 :(得分:3)

您需要使用多个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

     

可以将作用于单个表的所有ALTER TABLE形式(RENAME,SET SCHEMA,ATTACH PARTITION和DETACH PARTITION除外)组合成一个多个变更列表,以一起应用。例如,可以在单个命令中添加几列和/或更改几列的类型。这对于大型表尤其有用,因为只需对表进行一次遍历。