синтаксическая ошибка изменения переименования базы данных внутри транзакции

#postgresql

Вопрос:

У меня есть две базы prod_db prod_db_new данных, и я хочу переименовать обе или ни одну. Я решил, что сделка подойдет для этого случая:

 BEGIN
ALTER DATABASE prod_db     RENAME TO prod_db_old
ALTER DATABASE prod_db_new RENAME TO prod_db
COMMIT;
 

Однако при запуске через CLI я получаю синтаксическую ошибку рядом с prod_db_old. Что я здесь упускаю ?

Комментарии:

1. Нет ; после каждого ALTER DATABASE утверждения.

Ответ №1:

Вам нужно после всех запятой поставить точку с запятой

 BEGIN;
ALTER DATABASE prod_db     RENAME TO prod_db_old;
ALTER DATABASE prod_db_new RENAME TO prod_db;
COMMIT;