Как удалить базу данных Postgres?
Если пользователь базы — www-data , а база — database , то можно так:
$ sudo -u www-data dropdb database
Подробнее об утилите dropdb и командe DROP DATABASE.
Отслеживать
51.6k 201 201 золотой знак 63 63 серебряных знака 245 245 бронзовых знаков
ответ дан 31 окт 2010 в 17:55
Nicolas Chabanovsky Nicolas Chabanovsky
51.4k 86 86 золотых знаков 267 267 серебряных знаков 505 505 бронзовых знаков
Из клиента psql:
postgres=# drop database database_name;
Отслеживать
ответ дан 6 июн 2018 в 14:35
121 2 2 бронзовых знака
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Определение структуры данных
Для создания базы данных используется команда CREATE DATABASE , после которой указывается название базы данных.
Для выполнения запросов будем использовать графический клиент pgAdmin, хотя также можно использовать консольный клиент psql.
Чтобы создать новую базу, данных откроем pgAdmin . В левой части программы выберем какую-нибудь базу данных, например, стандартную бд postgres, и нажмем на нее правой кнопкой мыши.

В появившемся меню выберем пункт Query Tool. , и в центральной части программы откроется поле для ввода кода SQL. В это поле введем следующий код:
CREATE DATABASE usersdb;

Для выполнения кода нажмем на значок молнии, и после этого будет создана база данных usersdb.
Чтобы увидеть нашу базу данных, нажмем в левой части на узел Databases правой кнопкой мыши и в контекстном меню выберем Refresh. :

Произойдет обновление, и мы увидем созданную базу данных.

По умолчанию база является неактивной, поэтому ее значок имеет серый цвет. Но чтобы к ней подключиться, достаточно нажать на нее и раскрыть ее узел.
Удаление базы данных
Для удаления базы данных применяется команда DROP DATABASE , после которой указывается название базы данных.
Удаляемая база данных должна быть неактивной, то есть подключение к ней должно быть закрыта.
Например, удаление базы данных usersdb:
DROP DATABASE usersdb;
PostgreSQL DROP/Delete BASE DATABASE: пример команды PSQL
Команда УДАЛИТЬ БАЗУ ДАННЫХ в PostgreSQL — это команда безвозвратного удаления всех записей каталога и каталога данных. Владелец базы данных может только выполнить эту команду. Его нельзя выполнить, пока кто-то подключен к целевой базе данных. Вам необходимо подключиться к другой базе данных, чтобы выполнить команду DROP DATABASE.
Поэтому при выполнении этой операции следует быть особенно осторожным.
Синтаксис PostgreSQL DROP DATABASE:
DROP DATABASE [IF EXISTS) name;
Здесь:-
- ЕСЛИ СУЩЕСТВУЕТ: это необязательный параметр. В случае, если база данных не существует, вместо ошибки отображается предупреждение.
- имя: укажите имя БД, которую вы хотите удалить.
Давайте посмотрим на пример командной строки удаления базы данных PostgreSQL в действии.
Удаление базы данных PostgreSQL с использованием оболочки SQL (командная строка)
Ниже приведен пошаговый процесс удаления базы данных в командной строке Postgres:
Шаг 1) Используйте команду \l, чтобы определить доступную в данный момент базу данных.

Шаг 2) Чтобы удалить базу данных в Postgres, введите команду
drop database guru99
Используйте команду \l, чтобы проверить, удалена ли БД.

Шаг 3) Попробуйте удалить ту же базу данных еще раз, вы получите ошибку.
![]()
Шаг 4) Удалите базу данных с помощью предложения IF существует, и вы получите предупреждение.
drop database IF EXISTS guru99

Удаление базы данных PostgreSQL PgAdmin (графический интерфейс пользователя)
Шаг 1) Щелкните правой кнопкой мыши базу данных «guru99» и выберите «Удалить/Удалить».

Шаг 2) Нажмите «ОК» во всплывающем окне подтверждения.

База данных удалена.
команда dropdb
Команда dropdb позволяет удаленно удалить базу данных в PostgreSQL. Но пользователь должен быть владельцем базы данных, чтобы использовать команду удаления базы данных PostgreSQL для удаления этой базы данных.
Синтаксис:
Dropdb [option.] dbname
| Опция | Описание |
|---|---|
| -e | Эхо-команды, которые dropdb создает и отправляет на сервер. |
| -i | Отображение запроса на проверку перед выполнением любой разрушительной работы. |
| -V | Используйте эту опцию, чтобы распечатать версию dropdb. |
| -Помогите | Предоставьте помощь с аргументами командной строки dropdb. |
| -h хост | Помогает указать имя хоста системы, на которой в данный момент работает сервер. |
| -p порт | Опция позволяет указать расширение файла сокета домена Unix, с которым сервер устанавливает соединения. |
| – если существует | Если существует, вместо потепления будет отображаться ошибка, если БД не выйдет. |
| -U имя пользователя | Имя пользователя для подключения. |
| -w | Используйте эту опцию, если вы не хотите, чтобы запрос пароля |
| -W | Используйте этот параметр, чтобы запросить пароль перед удалением базы данных. |
| обслуживание db-=имя_базы_данных | имя базы данных для подключения к удалению целевой базы данных. |
Пример удаления базы данных PostgreSQL
Мы хотим уничтожить базу данных guru99 с помощью сервера на хосте rome, порт 4565, с проверкой, и вам нужно использовать following команда удаления базы данных PostgreSQL:
dropdb -p 4565 -h rome -i -e guru99
База данных «guru99» будет удалена без возможности восстановления.
Вы уверены? (да/нет) если вы выберете y, то вы сможете
СБРОСИТЬ БАЗУ ДАННЫХ гуру99;
Итоги
- Инструкция PSQL DROP DATABASE навсегда удаляет все записи каталога и каталог данных из среды PostgreSQL.
- Вы можете использовать предложение If существует, чтобы ошибка не отображалась.
- Вы также можете удалить базу данных с помощью pgadmin
- Команда dropdb позволяет удаленно удалить или удалить базу данных в PSQL.
- PostgreSQL BETWEEN Запрос с примером
- Триггеры PostgreSQL: создание, список и удаление на примере
- Таблица ALTER PostgreSQL: добавление столбца, переименование столбца/таблицы, примеры
- Запрос на удаление PostgreSQL (удаление строк из выбора)
- PostgreSQL существует с примером выбора, вставки, обновления и удаления
- PostgreSQL INSERT: вставка данных в таблицу
- Как установить PostgreSQL в Ubuntu (установка pgAdmin)
- Ограничения PostgreSQL: типы с примером
Как удалить базу данных PostgreSQL
В предыдущей статье мы рассмотрели установку PostgreSQL на Debian. Сегодня разберемся с удалением баз данных PostgreSQL.
Удалить базу данных PostgreSQL можно двумя способами — командой DROP DATABASE или с помощью утилиты dropdb . Между этими методами нет большой разницы. Отличается только синтаксис, плюс использование утилиты dropdb даёт чуть больше возможностей для управления удалением.
DROP DATABASE
Первый способ удалить БД PostgreSQ L — использовать следующую инструкцию SQL:
DROP DATABASE ;
Команда удаляет каталог, который содержит информацию о БД и сохранённые ранее записи. DROP DATABASE может выполнить только владелец базы данных. Если кто-то в момент исполнения команды будет использовать БД, то удаление не будет завершено.
Практика
Чтобы убедиться на практике, что DROP DATABASE работает, создадим БД на сервере Timeweb Cloud , а затем удалим её.
Подключитесь к Postgres через терминал:
sudo -i -u postgres psql
Создайте новую БД для практики:
CREATE DATABASE example_db;
Чтобы убедиться, что новая БД успешно создана, выведите список всех баз данных:
В ответ отобразится таблица, в которой перечислены все БД, доступные на сервере.
Теперь посмотрим, как в PostgreSQL выполнить удаление базы данных. Выполните запрос:
DROP DATABASE example_db;
В терминале отобразится сообщение, о том, что БД удалена. Чтобы убедиться в этом, ещё раз выведите полный список БД:
В таблице не должно быть базы с именем example_db .
IF EXIST
Опция IF EXISTS позволяет выполнить проверку, существует ли база данных, прежде чем её удалять. Полный синтаксис выглядит следующим образом:
DROP DATABASE IF EXISTS < Имя базы данных >;
Если база данных существует, команда удаляет её. Если БД с таким именем нет, появляется информативное уведомление, а не сообщение об ошибке.
Чтобы проверить, как работает опция IF EXISTS , сначала создайте пример базы данных:
CREATE DATABASE timeweb_db;
Затем удалите только что созданную базу данных, используя опцию IF EXISTS :
DROP DATABASE IF EXISTS timeweb_db;
Если база данных с таким именем существует, результат будет таким же, как при использовании DROP DATABASE .
БД с именем timeweb_db больше недоступна. Повторите команду удаления с опцией IF EXISTS :
DROP DATABASE IF EXISTS timeweb_db;
В результате в терминале отобразится информативное сообщение о том, что такой сущности нет.
Напоследок выполните DROP DATABASE без дополнительных опций:
DROP DATABASE timeweb_db;
Использование DROP DATABASE без параметра IF EXISTS приведёт к тому, что в терминале появится менее информативное сообщение об ошибке.
WITH (FORCE)
Опция WITH (FORCE) доступна в Postgres версии 13 и выше. Она нужна для «силового» удаления базы данных, которая используется в данный момент. WITH (FORCE) принудительно закрывает сеанс и удаляет БД.
DROP DATABASE WITH (FORCE);
Утилита dropdb
Утилита командной строки dropdb — это просто оболочка для DROP DATABASE . По сути, эти два метода идентичны. Однако dropdb предлагает дополнительные возможности, которые помогают сделать удаление базы PostgreSQL более удобным и информативным.
dropdb
Флаг
Тип
Что делает
Выводит в терминал все команды, которые фактически выполняются на сервере при использовании утилиты dropdb
Разрывает все текущие подключения, прежде чем удалять БД
Выводит просьбу подтвердить удаление БД, прежде чем стирать её
Выводит в консоль версию утилиты
Добавляет информативности, выдавая вместо ошибки текстовое сообщение, если целевая БД не существует
Вызывает меню со справочной информацией
Задаёт имя хоста, на которой работает БД
Указывает номер порта, который прослушивает сервер
Позволяет подключиться к БД под именем указанного пользователя
Делает запрос пароля необязательным. Это особенно полезно при выполнении пакетных заданий и сценариев
Принудительно запрашивает пароль при выполнении каждой операции
Уточняет имя подключения к БД
Например, у вас есть облачные базы данных . Периодически нужно удалять неиспользуемые сущности. Вы хотите, чтобы этот процесс был безопасным и понятным всем пользователям. Утилита dropdb закрывает оба запроса.
Допустим, команда вида:
dropdb -i -e example_db
приведёт к тому, что в терминале сначала появится просьба подтвердить удаление, а после подтверждения отобразятся команды, выполненные в ходе операции.
Коротко о главном
Чтобы удалить базу данных, вы должны быть её владельцем и иметь доступ к терминалу с привилегиями sudo .
Выбор способа удаления зависит от вас. Между DROP DATABASE и утилитой dropdb нет принципиальной разницы. Это лишь вопрос удобства использования и тех сценариев, при которых вам нужно в PostgresSQL удалить базу данных .
Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.