我正在尝试编写一个查询,以一次重命名多个表列。根据文档,语法为:
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。我一生都无法弄清楚为什么会发生此错误。
答案 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形式(RENAME,SET SCHEMA,ATTACH PARTITION和DETACH PARTITION除外)组合成一个多个变更列表,以一起应用。例如,可以在单个命令中添加几列和/或更改几列的类型。这对于大型表尤其有用,因为只需对表进行一次遍历。