ALTER TABLE table_name
RENAME TO new_table_name;
Удаляет ли он таблицу с именем table_name
и создает новую таблицу с именем new_table_name
или сразу переименовывает ее?
Нет, все переименование объекта в PostgreSQL — это изменение одной записи в таблице каталога.
В случае таблиц это столбец relname
в pg_class
.
Все внутренние ссылки на таблицу выполняются через ее «идентификатор объекта».
Исключение здесь составляют функции. Тела функций — это строки, и если вы обращаетесь к таблице по имени в функции, оно не обновляется.