×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.78. CREATE SCHEMA

6.1.78. CREATE SCHEMA

CREATE SCHEMA — создание новой схемы

Синтаксис

CREATE SCHEMA schema_name [ AUTHORIZATION role_specification ] [ schema_element [ ... ] ]
CREATE SCHEMA AUTHORIZATION role_specification [ schema_element [ ... ] ]
CREATE SCHEMA IF NOT EXISTS schema_name [ AUTHORIZATION role_specification ]
CREATE SCHEMA IF NOT EXISTS AUTHORIZATION role_specification

где role_specification может быть:

    user_name
  | CURRENT_ROLE
  | CURRENT_USER
  | SESSION_USER

Описание

CREATE SCHEMA вносит новую схему в текущую базу данных. Имя схемы должно отличаться от имен всех существующих схем в текущей базе данных.

Схема по сути является пространством имен: она содержит именованные объекты (таблицы, типы данных, функции и операторы), имена которых могут дублировать имена других объектов, существующих в других схемах. Доступ к именованным объектам осуществляется либо путем «дополнения» их имен именем схемы в качестве префикса, либо путем установки пути поиска, включающего нужную схему (схемы). CREATE команда указывающая неквалифицированное имя объекта, создает объект в текущей схеме (той, что находится в начале пути поиска, который может быть определен с помощью функции current_schema).

Необязательно CREATE SCHEMA может включать подкоманды для создания объектов внутри новой схемы. Подкоманды обрабатываются практически так же, как и отдельные команды, выполняемые после создания схемы, за исключением случая, когда используется предложение AUTHORIZATION используется данное предложение, владельцем всех созданных объектов будет являться этот пользователь.

Параметры

schema_name

Имя создаваемой схемы. Если оно опущено, в качестве имени схемы user_name используется. Имя не может начинаться с pg_, так как такие имена зарезервированы для системных схем.

user_name

Имя роли пользователя, который будет владельцем новой схемы. Если оно опущено, используется имя пользователя, выполняющего команду. Чтобы создать схему, владельцем которой будет другая роль, необходимо иметь права на выполнение SET ROLE для этой роли.

schema_element

Инструкция SQL, определяющая объект, создаваемый в рамках схемы. В настоящее время только CREATE TABLE, CREATE VIEW, CREATE INDEX, CREATE SEQUENCE, CREATE TRIGGER и GRANT допускаются в качестве предложений внутри команды CREATE SCHEMA. Объекты других типов могут создаваться отдельными командами после создания схемы.

IF NOT EXISTS

Не выполнять никаких действий (за исключением вывода уведомления), если схема с таким же именем уже существует. schema_element подкоманды не могут быть включены при использовании данного параметра.

Примечания

Для создания схемы вызывающий пользователь должен иметь CREATE привилегию для текущей базы данных. (Разумеется, для суперпользователей эта проверка не выполняется.)

Примеры

Создание схемы:

CREATE SCHEMA myschema;

Создание схемы для пользователя joe; схема также будет называться joe:

CREATE SCHEMA AUTHORIZATION joe;

Создание схемы с именем test владельцем которой будет пользователь joe, если только схема с именем testеще не существует. (При этом не имеет значения, является ли joe владельцем уже существующей схемы.)

CREATE SCHEMA IF NOT EXISTS test AUTHORIZATION joe;

Создание схемы с созданием в ней таблицы и представления:

CREATE SCHEMA hollywood
    CREATE TABLE films (title text, release date, awards text[])
    CREATE VIEW winners AS
        SELECT title, release FROM films WHERE awards IS NOT NULL;

Обратите внимание, что отдельные подкоманды не должны завершаться точкой с запятой.

Ниже приведен эквивалентный способ получения того же результата:

CREATE SCHEMA hollywood;
CREATE TABLE hollywood.films (title text, release date, awards text[]);
CREATE VIEW hollywood.winners AS
    SELECT title, release FROM hollywood.films WHERE awards IS NOT NULL;

Совместимость

Стандарт SQL допускает использование DEFAULT CHARACTER SET предложения в CREATE SCHEMA, а также большего числа типов подкоманд, чем поддерживается в настоящее время в Digital Q.DataBase.

Стандарт SQL определяет, что подкоманды в CREATE SCHEMA могут следовать в произвольном порядке. Текущая Digital Q.DataBase реализация не поддерживает все случаи опережающих ссылок в подкомандах; иногда может потребоваться изменение порядка подкоманд во избежание опережающих ссылок.

Согласно стандарту SQL, владелец схемы всегда является владельцем всех объектов в ней. Digital Q.DataBase допускает наличие в схемах объектов, принадлежащих пользователям, отличным от владельца схемы. Это возможно только в том случае, если владелец схемы предоставляет CREATE привилегию доступа к своей схеме другому пользователю или если объекты в ней создает суперпользователь.

Параметр IF NOT EXISTS является Digital Q.DataBase расширением.

См. также

ALTER SCHEMA, DROP SCHEMA
Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению