Иллюстрированный самоучитель по PostgreSQL

Создание и удаление баз данных

Команда DROP DATABASE

Синтаксис команды SQL DROP DATABASE:

DROP DATABASE база_данных

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

Листинг 9.12. Команда DROP DATABASE.

tempiatel=# DROP DATABASE example;
DROP DATABASE

Сообщение сервера DROP DATABASE говорит о том, что база данных успешно удалена, а соответствующие системные файлы уничтожены. Также встречаются сообщения об ошибках.

  • ERROR: DROP DATABASE: cannot be executed on the currently open database. Вы подключены к базе данных, которую пытаетесь удалить. Прежде чем удалять базу данных, необходимо отключиться от нее.
  • ERROR: DROP DATABASE: database "example" Is being accessed by other users. Кбазе данных, которую вы пытаетесь удалить, подключены другие пользователи. Подождите, пока они не завершат работу с базой данных.
  • ERROR: DROP DATABASE: database "example" does not exist. База данных с указанным именем (в данном примере – база данных example) не существует.

Приложение dropdb

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

Синтаксис запуска сценария dropdb:

dropdb [ параметры ] база_данных

Параметр база_данных определяет имя удаляемой базы данных. В строке параметры передаются ключи приложения. Большинство ключей dropdb описывает параметры подключения к PostgreSQL и совпадает с ключами, описанными выше в пункте "Команда createdb" подраздела "Создание базы данных". Добавился всего один новый ключ --i или --interactive.

Ниже приведен полный список ключей приложения dropdb.

  • – h хост, --host=xocт. Хост, с которым устанавливается связь для удаления базы данных. По умолчанию используется имя local host или значение переменной среды PGHOST.
  • – р порт, --port=nopт. Порт, по которому должно производиться подключение к серверу, вместо порта по умолчанию (обычно 5432, хотя при компиляции PostgreSQL можно задать другой порт при помощи флага --with-pgport).
  • – U пользователь, --usere=пользователь. Имя пользователя, с которым производится подключение к PostgreSQL для удаления базы данных (вместо имени системного пользователя, запустившего программу dropdb).
  • – W, --password. Ключ передается без параметров и обеспечивает запрос пароля у пользователя. Это происходит автоматически, если в файле pg_hba.conf хост, от которого поступил запрос, не объявлен доверенным.
  • – i, --interactive. Ключ передается без параметров. Перед уничтожением данных пользователю предлагается подтвердить свое решение.
  • – е, --echo. Ключ передается без параметров. При включении вывода эха команда DROP DATABASE, передаваемая PostgreSQL, выводится на экран в момент ее выполнения программой dropdb.
  • – q, --quiet. Ключ передается без параметров и запрещает вывод данных в стандартный поток stdout (хотя ошибки по-прежнему направляются в стандартный поток stderr).

Команду dropdb всегда рекомендуется выполнять с флагом – i, поскольку это дает возможность лишний раз подумать перед удалением информации из PostgreSQL.

В листинге 9.13 приведен пример удаления базы данных example пользователем manager с ключом – i.

Листинг 9.13. Использование команды dropdb.

[jworsley@booktown – ]$ dropdb – U manager – i example
Database "example" will be permanently deleted.
Are you sure? (y/n) у
DROP DATABASE
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.