Создание и удаление баз данных
Для выполнения команды CREATE DATABASE необходимо предварительно подключиться к базе данных. Если вы еще не создали ни одной базы данных, воспользуйтесь стандартным шаблоном tempi atel. Подключившись к этой базе данных, вы сможете создать новую базу для последующего подключения.
Создатель автоматически становится владельцем новой базы данных (также используется термин "администратор", или DBA – database administrator). Владельцу базы данных принадлежат все объекты, хранящиеся в базе, и он может предоставлять право доступа к ним другим пользователям. База данных должна создаваться пользователем, который в дальнейшем будет активно заниматься ее сопровождением.
В листинге 9.10 пользователь manager подключается к шаблону templatel и создает базу данных booktown. В примере использован клиент psql, но аналогичный синтаксис подходит для любого другого клиента PostgreSQt.
Листинг 9.10. Создание базы данных.
[jworsley@booktown – ]$ psql – U manager tempiatel Welcome to psql .the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit tempiatel-# CREATE DATABASE booktown; CREATE DATABASE
Сообщение CREATE DATABASE говорит о том, что база данных была создана успешно. Также встречаются сообщения об ошибках.
- ERROR: CREATE DATABASE: permission denied. Пользователь пытается создать базу данных, не имея для этого необходимых прав. Право создания баз данных определяется состоянием поля usecreatedb таблицы pg_shadow, упоминавшейся ранее в этой главе. За дополнительной информацией о предоставлении этого права обращайтесь к главе 10.
- ERROR: CREATE DATABASE: database "booktown" already exists. База данных с заданным именем (в данном примере – booktown) уже существует. PostgreSQL запрещает создавать базы данных с одинаковыми именами, даже если они находятся в разных физических каталогах файловой системы.
Примечание
Если другой пользователь работает с базой данных, которую вы хотите использовать в качестве шаблона, вам придется подождать освобождения этой базы.
Приложение createdb
В PostgreSQL вместо команды CREATE DATABASE также можно воспользоваться приложением командной строки createdb. Единственное функциональное отличие createdb от команды SQL заключается в том, что программа запускается в режиме командной строки и позволяет включить комментарий в базу данных одновременно с ее созданием. В SQL для этого потребовалось бы две команды: CREATE DATABASE и COMMENT.
Синтаксис запуска программы createdb:
createdb [ параметры ] база_данных [ описание ]
Параметр база_данных определяет имя создаваемой базы данных. В строке параметры передаются любые из перечисленных ниже ключей, а описание содержит комментарий, включаемый в базу данных скрытой командой COMMENT (комментарии описаны в подразделе "Документирование базы данных" раздела "Сопровождение базы данных").
Строка параметров может содержать либо ключи с дефисом, отделенные от значения пробелом (например, – D каталог), либо ключи в стиле GNU с двумя дефисами и знаком равенства, если он нужен (например, --lосаtiоп=каталог). Ключи с одним дефисом всегда ограничиваются одной буквой, а ключи с двумя дефисами состоят из нескольких букв (обычно это целое слово).