Создание и удаление баз данных
Команда 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