Мне нужно переименовать базу данных, но когда я это сделал,
PGAdmin : ALTER DATABASE "databaseName" RENAME TO "databaseNameOld"
мне сказали, что это невозможно.
Как мне это сделать?
( Версия 8.3 для WindowsXP )
Обновить
Первое сообщение об ошибке: Невозможно, потому что я подключился к нему. Поэтому я выбрал другую базу данных и выполнил запросы.
Я получаю второе сообщение об ошибке, в котором говорится, что пользователь подключился. Я вижу на
PGAdmin
экране, что их много,PID
но они неактивны ... Не вижу, как их убить.
sql
postgresql
Патрик Дежарден
источник
источник
Ответы:
Старайтесь не цитировать имя базы данных:
Также убедитесь, что к базе данных не подключены другие клиенты. Наконец, попробуйте опубликовать сообщение об ошибке, которое он возвращает, чтобы мы могли получить немного больше информации.
источник
.
или@
.-
Для справки в будущем вы должны уметь:
Обратите внимание, что
pg_stat_activity
столбец таблицыpid
был назван так, какprocpid
в версиях до 9.2. Поэтому, если ваша версия PostgreSQL ниже 9.2, используйтеprocpid
вместоpid
.источник
PostgreSQL 9.3.5 on x86_64-apple-darwin, compiled by i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00), 64-bit
)Я только что столкнулся с этим, и вот что сработало:
1)
pgAdmin
- одна из сессий.psql
Вместо этого используйте .2) Остановите
pgBouncer
службы и / или службы планировщика в Windows, поскольку они также создают сеансыисточник
Unexist сказал мне в комментарии перезапустить базу данных, и она работает! Перезапуск базы данных уничтожает все существующие соединения, а затем я подключаюсь к другой базе данных и смог переименовать ее с помощью моего первоначального запроса.
Спасибо всем.
источник
Вместо развертывания ядерной бомбы (перезапуска сервера) вы должны попытаться закрыть те соединения, которые вас беспокоят, либо обнаружив, откуда они и завершив клиентские процессы, либо с помощью этой
pg_cancel_backend()
функции.источник
Для тех, кто сталкивается с этой проблемой при использовании DBeaver и получает такое сообщение об ошибке:
Отключите текущее соединение и повторно подключитесь к тому же серверу с подключением, которое не нацелено на базу данных, которую вы переименовываете.
Менять активную базу данных недостаточно.
источник