Команда CREATE DATABASE
Команда CREATE DATABASE
Команда SQL CREATE DATABASE имеет следующий синтаксис:
CREATE DATABASE база_дднных
[ WITH [ LOCATION = 'каталог' ]
[ TEMPLATE = шаблон ]
[ ENCODING = кодировка ] ]
Параметр база_данных определяет имя создаваемой базы данных. Имена баз данных должны начинаться с алфавитного символа, а их длина не должна превышать 31 символа. PostgreSQL позволяет создать в заданном каталоге любое количество баз данных (естественно, при наличии свободного места на диске).
За необязательным ключевым словом WITH можно указать до трех дополнительных атрибутов.
- LOCATION = 'каталог'. В апострофах передается имя переменной среды, инициализированной в среде пользователя, запустившего серверный процесс PostgreSQL. Предположим, в файл /home/postgres/.bash_profile входит следующая строка:
export PGDATA2="/usr/local/pgsql/data2"
После запуска PostgreSQL (при наличии определенной переменной PGDATA2) переменная может использоваться в качестве значения параметра LOCATION. Эта общая мера безопасности предотвращает запись в посторонние каталоги файловой системы. Если ключевое слово LOCATION отсутствует, PostgreSQL создает базу данных в каталоге данных по умолчанию (например, /usr/local/pgsql/data).
- TEMPLATE = шаблон. Шаблон, используемый в качестве прототипа для создания новой базы данных. Все объекты, присутствующие в шаблоне, воспроизводятся в созданной базе. Если шаблон не задан, PostgreSQL создает новую базу данных на основе шаблона tempi atel. Если вы хотите создать пустую базу данных, не содержащую объектов из tempi atel, укажите шаблон tempi ateO.
- ENCODING = кодировка. Значение параметра определяется либо в виде строковой константы, описывающей тип кодировки (SQL_ASCII, LATIN1 и т. д.), либо в виде эквивалентной числовой константы PostgreSQL. Допустимые типы кодировок PostgreSQL и их числовые значения перечислены в приложении А. Если ключевое слово ENCODING не задано, PostgreSQL создает базу данных в кодировке по умолчанию. Обычно это кодировка SQL_ASCII, хотя в процессе первоначальной настройки конфигурации PostgreSQL можно выбрать другую кодировку (процедура выбора кодировки описана в главе 2).
ВНИМАНИЕ
Значение, передаваемое с ключевым словом LOCAi ION, должно определять имя переменной среды. Оно не может напрямую описывать системный путь (например, /usr/local/pgsql/data2), если только в процессе первоначальной компиляции и установки PostgreSQL команде gmake не был передан аргумент CPPFLAGS=-DALLOW_ABSOLUTE_DBPATHS.
Для выполнения команды CREATE DATABASE необходимо предварительно подключиться к базе данных. Если вы еще не создали ни одной базы данных, воспользуйтесь стандартным шаблоном tempi atel. Подключившись к этой базе данных, вы сможете создать новую базу для последующего подключения.
Создатель автоматически становится владельцем новой базы данных (также используется термин «администратор», или DBA — database administrator). Владельцу базы данных принадлежат все объекты, хранящиеся в базе, и он может предоставлять право доступа к ним другим пользователям. База данных должна создаваться пользователем, который в дальнейшем будет активно заниматься ее сопровождением.
В листинге 9.10 пользователь manager подключается к шаблону tempi atel и создает базу данных booktown. В примере использован клиент psql, но аналогичный синтаксис подходит для любого другого клиента PostgreSQt.