Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
Создание новой базы данных.
CREATE DATABASE name [ [WITH] [OWNER [=] user_name]
[TEMPLATE [=] template]
[ENCODING [=] encoding]
[LC_COLLATE [=] lc_collate]
[LC_CTYPE [=] lc_ctype]
[TABLESPACE [=] tablespace]
[CONNECTION LIMIT [=] connlimit ] ]
Команда CREATE DATABASE создаёт новую базу данных. Чтобы создать базу данных, вы должны быть суперпользователем или обладать специальными привилегиями CREATEDB.
По умолчанию создатель становится владельцем новой базы данных. Суперпользователи могут использовать предложение OWNER для создания баз данных, принадлежащих другим пользователям. Они могут даже создавать базы данных, принадлежащие пользователям без специальных привилегий. Несуперпользователи с привилегией CREATEDB могут создавать только базы данных, которыми они владеют.
По умолчанию новая база данных создаётся путём клонирования стандартной системной базы-шаблона template1. Другие шаблоны можно указать с помощью параметра TEMPLATE. В частности, используя TEMPLATE template0, можно создать «чистую» базу данных, содержащую только стандартные объекты, определённые системой YMatrix. Эта возможность полезна, если требуется избежать копирования локальных объектов, которые могли быть добавлены в template1.
name
user_name
template
encoding
lc_collate
lc_ctype
tablespace
connlimit
CREATE DATABASE нельзя выполнять внутри блока транзакции.
При создании копии базы данных с использованием имени существующей базы в качестве шаблона, другие сессии не могут подключаться к этой базе-шаблону в процессе копирования. Новые подключения к базе-шаблону блокируются до завершения команды CREATE DATABASE.
Для суперпользователей ограничение CONNECTION LIMIT не является обязательным.
Кодировка символов, указанная для новой базы данных, должна быть совместима с выбранными параметрами локали (LC_COLLATE и LC_CTYPE). Если локаль C (или эквивалент POSIX), разрешены все кодировки, но при других значениях локали работает только одна соответствующая кодировка. Суперпользователи могут указать кодировку SQL_ASCII независимо от локали, однако этот вариант не рекомендуется и может вызвать ошибки в строковых функциях, если кодировка несовместима с локалью.
Параметры кодировки и локали должны совпадать с параметрами базы-шаблона, за исключением случая, когда в качестве шаблона используется template0. Это связано с тем, что COLLATE и CTYPE влияют на порядок в индексах, поэтому любой индекс, скопированный из базы-шаблона, окажется недействительным в новой базе с другими настройками. Однако известно, что template0 не содержит данных или индексов, чувствительных к таким изменениям.
Создание новой базы данных:
CREATE DATABASE test;
Создание базы данных sales, владельцем которой является пользователь salesapp, с использованием табличного пространства salesspace по умолчанию:
CREATE DATABASE sales OWNER salesapp TABLESPACE salesspace;
Создание базы данных music, поддерживающей набор символов ISO-8859-1:
CREATE DATABASE music ENCODING 'LATIN1' TEMPLATE template0;
В этом примере указание TEMPLATE template0 требуется только в том случае, если кодировка базы template1 отличается от ISO-8859-1. Обратите внимание, что изменение кодировки может потребовать также выбора новых значений LC_COLLATE и LC_CTYPE.
В стандарте SQL отсутствует оператор CREATE DATABASE. База данных эквивалентна каталогу, а создание каталога реализуется через его определение.