PostgreSQL Drop Database с примерами

PostgreSQL предлагает два метода удаления базы данных из командной строки - с помощью оператора DROP DATABASE или утилиты оболочки. Удаление неиспользуемых баз данных является хорошей практикой и помогает поддерживать чистоту рабочего пространства. Однако следует помнить, что при удалении существующей базы данных PostgreSQL удаляются все записи каталога и данные для этой базы данных.

Продолжайте читать, чтобы узнать, как удалить базу данных в PostgreSQL.

PostgreSQL

Необходимые условия

  • Установленный и настроенный PostgreSQL 10 или выше (следуйте нашему руководству для Ubuntu или Windows; если он уже установлен, проверьте версию PostgreSQL в системе).
  • Доступ к терминалу с привилегиями sudo.

Операция DROP DATABASE

Только владелец базы данных может удалить базу данных.

Первый способ удаления базы данных PostgreSQL заключается в использовании следующего оператора SQL:

Команда удаляет каталог, содержащий информацию о базе данных и записи каталога. Только владелец базы данных может выполнить команду DROP DATABASE. Если кто-либо в настоящее время использует базу данных, команда не выполняется.

Чтобы увидеть, как работает DROP DATABASE, выполните следующие действия:

1. Откройте терминал (CTRL+ALT+T).

2. Подключитесь к PostgreSQL:

3. Создайте базу данных для примера:

создать базу данных пример вывод

Терминал выводит выполненный оператор.

4. Перечислите все базы данных с:

postgres список баз данных пример базы данных

В списке появится база данных из предыдущего шага.

5. Удалите базу данных с помощью:

пример удаления базы данных

Вывод показывает выполненный оператор.

6. Снова перечислите все базы данных:

База данных example больше не появляется в списке.

IF Exists

Опция IF EXISTS открыта для всех версий, в которых доступен DROP DATABASE. Полный синтаксис команды с опцией IF EXISTS выглядит следующим образом:

Эта опция сначала проверяет, существует ли база данных, прежде чем удалять ее. Если база данных существует, команда удаляет базу данных. Однако, если база данных не существует, команда печатает информационное сообщение.

Чтобы проверить работу команды, выполните следующие действия:

1. Создайте базу данных примера:

2. Удалите базу данных, используя параметр IF EXISTS:

сброс базы данных, если она существует пример

Результат идентичен использованию DROP DATABASE, если база данных существует.

3. База данных больше не доступна. Повторно выполните команду, чтобы увидеть результат:

сообщение drop база данных не существует

Выводится сообщение о том, что база данных не существует.

4. Чтобы увидеть разницу между использованием IF EXISTS и опущением опции, выполните следующую команду:

ошибка примера сброса базы данных

Использование команды DROP DATABASE без опции IF EXISTS для несуществующей базы данных приводит к появлению сообщения об ошибке.

WITH (FORCE)

Опция WITH (FORCE) доступна в PostgreSQL версии 13 и выше.

Метод DROP DATABASE не удалит базу данных, если она используется. Если база данных используется, терминал выводит ошибку о том, что открыт сеанс работы с базой данных.

сброс сеанса ошибки базы данных

Добавьте опцию WITH (FORCE), чтобы принудительно закрыть сессию и удалить базу данных:

принудительное удаление базы данных

Если возможно, Postgres закрывает сеанс пользователя и удаляет базу данных принудительно.

Утилита dropdb

Утилита dropdb представляет собой обертку для команды DROP DATABASE. По сути, эти два метода идентичны. Однако dropdb предлагает дополнительные возможности, включая удаление баз данных удаленно.

Основной синтаксис следующий:

Опции

В таблице ниже приведены все возможные опции при использовании утилиты dropdb

Опция Тип Описание
-e
--echo
Опция Выводит команды, которые dropdb посылает на сервер.
-f
--force
Опция Пытается завершить все текущие соединения перед удалением базы данных.
-i
--interactive
Опция Запрашивает проверку перед выполнением удаления базы данных.
-V
--version
Опция В консоли печатает версию утилиты.
--if-exists Опция Выводит уведомление вместо ошибки, если база данных не существует.
-?
--help
Опция Показать меню справки.
-h [host]
--host=[host]
Параметр подключения Указывает имя хоста машины, на которой запущен сервер.
-p [port]
--port=[port]
Параметр подключения Указывает TCP-порт, на котором прослушивается сервер.
-U [username]
--username  [username]
Параметр подключения Подключиться от имени указанного пользователя.
-w
--no-password
Параметр подключения Никогда не выдавать запрос пароля. Полезно для пакетных заданий и сценариев, когда нет пользователя.
-W
--password
Параметр подключения Принудительный запрос пароля. Без этой опции сервер теряет попытку подключения, если требуется ввести пароль.
--maintenance-db=[database name] Параметр подключения Опция задает подключение по имени базы данных.

Например, попробуйте выполнить следующую команду, чтобы посмотреть, как работает dropdb с опциями -i и -e:

Программа запрашивает подтверждение перед удалением из-за тега -i.

dropdb -i -e example

Нажмите y для подтверждения. Программа печатает сгенерированные команды на сервер. Поскольку база данных не существует, программа выдает ошибку и завершает работу.

Заключение

После выполнения примеров из этого руководства вы знаете, как удалить пользователя базы данных PostgreSQL двумя методами.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий