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

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 не может использоваться в открытых блоках транзакций.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.