CREATE DATABASE
Создание новой базы данных в PostgreSQL.
Синтаксис:
CREATE DATABASE база_данных [ WITH [ LOCATION = { 'каталог' | DEFAULT } ] [ TEMPLATE = шаблон DEFAULT ] [ ENCODING = имя_нодировки | номер_кодировки | DEFAULT ] ]
Параметры:
- база_данных. Имя создаваемой базы данных.
- каталог. Каталог, в котором хранится база данных. С ключевым словом DEFAULT база сохраняется в каталоге по умолчанию, задаваемом переменной среды PGDATA (или ключом – D, переданным postmaster).
Внимание
В параметре каталог обычно передается имя системной переменной среды, значение которой описывает инициализированный каталог базы данных. Тем не менее, если при компиляции PostgreSQL использовалась команда gmake с ключом CPPFLAGS=-DALLOW_ABSOLUTE_DBPATHS, можно ввести полный, абсолютный путь. - шаблон. Имя шаблона, на основании которого создается новая база данных. Ключевое слово DEFAULT означает шаблон по умолчанию (обычно templatel).
- имя_кодировки | номер_кодировки. Расширенная кодировка, используемая базой данных. Задается в виде строкового литерала или в виде целочисленного номера, определяющего тип кодировки. Список типов расширенных кодировок в PostgreSQL приведен в приложении А.
- DEFAULT. Ключевое слово DEFAULT явно задает кодировку по умолчанию (используемую при отсутствии параметра ENCODING).
Результаты:
- CREATE DATABASE. Сообщение выдается при успешном создании новой базы данных.
- ERROR: user "пользователь" is not allowed to create/drop database. Ошибка – пользователь PostgreSQL не обладает привилегией createdb, необходимой для создания базы данных. Администратор PostgreSQL предоставляет право создания баз данных пользователям при помощи команды ALTER USER.
- ERROR: Absolute paths are not allowed as database locations. Ошибка – в параметре LOCATION был указан абсолютный путь, а при компиляции PostgreSQL команда gmake вызывалась без ключа CPPFLAGS=-DALLOW_ABSOLUTE_DBPATHS.
- ERROR: Relative paths are not allowed as database locations. Ошибка – в параметре LOCATION указан относительный путь, а в PostgreSQL 7.1.x данная возможность не поддерживается. В этом параметре необходимо передать имя переменной среды, содержащей информацию о требуемом местонахождении базы данных.
- ERROR: createdb: database "база_данных" already exists. Ошибка – база данных с указанным именем уже существует в системном каталоге.
- ERROR: database path may not contain single quotes. Ошибка – в параметре каталог (местонахождение базы данных в файловой системе) используются апострофы ('), несовместимые с системной программой создания каталогов.
- ERROR: CREATE DATABASE: unable to create database directory '/каталог'. Ошибка – сохранение базы данных в заданном каталоге невозможно. Причины могут быть разными: переполнение диска, отсутствие прав доступа к заданному каталогу, отсутствие предварительной инициализации командами initdb или initlocation. Заданный каталог должен быть доступен для пользователя, под именем которого работает процесс postmaster.
- ERROR: CREATE DATABASE: May not be called in a transaction block. Ошибка-попытка вызова CREATE DATABASE в транзакционном блоке. Команда CREATE DATABASE не может использоваться в открытых блоках транзакций.