Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Инструкция CREATE SCHEMA советы и хитрости программирования


Инструкция CREATE SCHEMA

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

Если в вашей системе используются схемы, мы рекомендуем всегда ссылаться на объекты по имени схемы и имени объекта (например, jake.publishers). Если вы не введете указатель схемы, платформа, скорее всего, предположит, что это текущая схема для данного пользовательского соединения.

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


DB2

Платформа DB2 поддерживает основные элементы инструкции CREATE SCHEMA. Она не поддерживает предложения PATH и DEFAULT CHARACTER SET.

CREATE SCHEMA [имя_схемы] [AUTHORIZATION имя_владельца] [ANSI CREATE инструкции […]] [ANSI GRANT инструкции […]]

Во всем прочем синтаксис и применение инструкции аналогичны стандарту ANSI.

Платформа DB2 неявно создает схему, если в инструкции GRANT или CREATE есть ссылка на новую схему.

Платформа DB2 не поддерживает инструкцию ALTER SCHEMA.


MySQL

Не поддерживается.


Oracle

В Oracle инструкция CREATE SCHEMA на самом деле схему не создает. Это делает только инструкция CREATE USER. Инструкция CREATE SCHEMA позволяет пользователю выполнить несколько инструкций CREATE и GRANT в ранее созданной схеме, используя только одну инструкцию SQL.

CREATE SCHEMA AUTHORIZATION имя_схемы | ANSI CREATE инструкции […]] [ANSI GRANT инструкции […]]

Отметьте, что платформа Oracle разрешает использовать в инструкции CREATE SCHEMA только стандартные инструкции CREATE TABLE, CREATE VIEW и GRANT. Нельзя использовать любые расширения этих команд, имеющиеся в Oracle, если эти команды включены в инструкцию CREATE SCHEMA.

В следующем примере для Oracle в инструкции CREATE SCHEMA назначение допусков идет перед созданием объектов.

CREATE SCHEMA AUTHORIZATION emily
GRANT SELECT, INSERT ON view_1 TO sarah GRANT ALL ON table_1 TO sarah
CREATE VIEW view AS
SELECT columnM, column_2 FROM tablej ORDER BY column_2
CREATE TABLE table_1 (column INT, column_2 CHAR(20));

Как видно в приведенном выше примере, порядок команд в инструкции CREATE SCHEMA не важен. Платформа выполняет инструкцию CREATE SCHEMA только в том случае, если все входящие в нее инструкции CREATE и GRANT были выполнены успешно.


PostgreSQL

He поддерживается.


SQL Server

Платформа SQL Server поддерживает основные элементы инструкции CREATE SCHEMA, за исключением предложений РА ТН и DEFA ULT CHARA CTER SET.

CREATE SCHEMA AUTHORIZATION имя_владельца [ANSI CREATE инструкции […]] [ANSI GRANT инструкции […]]

Если не выполняется хотя бы одна из инструкций, входящих в инструкцию CREATE SCHEMA, то не выполняется и вся эта инструкция. Платформа SQL Server не требует, чтобы инструкции CREATE или GRANT располагались в каком-то порядке, за исключением того, что вложенные представления должны располагаться в логической последовательности. Таким образом, если представление view_100 ссылается на представление view_10, то представление view_10 должно располагаться в инструкции CREATE SCHEMA перед view_100.

Например:

CREATE SCHEMA AUTHORIZATION katie GRANT SELECT ON view_lO TO public
CREATE VIEW view_10 (col1) AS SELECT coll FROM foo
CREATE TABLE foo (col1 INT)
CREATE TABLE foo (coll INT PRIMARY KEY, col2 INT REFERENCES foo2(col1))
CREATE TABLE foo2 (coll INT PRIMARY KEY, col2 INT REFERENCES foo(coll))

Источник