Удалить БД из PostgreSQL через PHP

250
20 января 2018, 01:51

Есть ли возможность написать скрипт на php который удалит PostgreSQL базу данных? Другими словами как написать DROP DATABASE [ IF EXISTS ] name из php?

Answer 1

Да, это возможно и ничем не отличается от любых других SQL запросов.

Необходимы права на удаляемую БД - необходимо быть её владельцем или быть суперпользователем.

Необходимо, чтобы к этой БД никто не был подключен. Убить все активные соединения к базе можно запросом:

SELECT pg_terminate_backend(pid) 
from pg_stat_activity
where datname = 'имя базы';

Последний момент может несколько озадачить - как сделать запрос, если соединений с нужной базой быть не должно, но при подключении к PostgreSQL обязательно указывать имя базы сразу. Необходимо подключиться к любой другой базе и оттуда делать drop database, эта команда глобальна для всего экземпляра PostgreSQL. В частности, можно подключиться к служебной базе template1

READ ALSO
Как узнать из какой строки и какого файла был вызван метод класса?

Как узнать из какой строки и какого файла был вызван метод класса?

Если вообще не хочется попу отрывать от стула, то

369
Запись не добавляется в базу MYSQL phpmyadmin xampp

Запись не добавляется в базу MYSQL phpmyadmin xampp

Не добавляется записи из формы в базу данных в mysql XAMPPОтправляется код без ошибки но phpmyadmin записей не показывает

249
Вылезает php код при переходе в localhost/phpmyadmin

Вылезает php код при переходе в localhost/phpmyadmin

Пробовал много чего и sudo apt-get install php-mbstring из другого ответа,но ничего хорошего из этого не вышло

236