Синтаксическая ошибка при использовании нескольких выражений переименования RENAME postgresql - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь написать запрос, который переименовывает несколько столбцов таблицы одновременно.Согласно документации, синтаксис:

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 и для отдельных переименований.Я просто не могу на всю жизнь понять, почему происходит эта ошибка.

1 Ответ

0 голосов
/ 13 декабря 2018

Вам необходимо использовать несколько 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 могут быть объединены в список нескольких изменений, которые будут применены вместе. Например, можно добавить несколько столбцов и / или изменить типиз нескольких столбцов в одной команде.Это особенно полезно для больших таблиц, поскольку необходимо выполнить только один проход по таблице.

...