Переименование нескольких столбцов в одном операторе с помощью PostgreSQL

можно ли переименовать несколько столбцов в одном операторе, что-то вроде:

ALTER TABLE Users
    RENAME COLUMN userName TO user_name, 
    RENAME COLUMN realName TO real_name;

1 ответов


нет.

в то время как другие действия могут быть объединены, это невозможно с RENAME. инструкции:

все формы ALTER TABLE которые действуют на одной таблице, за исключением RENAME, SET SCHEMA, ATTACH PARTITION и DETACH PARTITION может быть объединены в список нескольких изменений, которые будут применяться вместе.

С RENAME это крошечная операция в системном каталоге, нет никакого вреда в запуске нескольких операторов. Сделайте это за одну транзакцию, чтобы минимизировать накладные расходы на блокировку.

другие действия, такие как ALTER COLUMN ... SET TYPE потенциально дороги, потому что им, возможно, придется переписать всю таблицу. С большими столами, было бы разумно сделать как можно больше в одном заявлении.