Введение в стандарты языка баз данных SQL



Определение таблицы


С помощью оператора определения таблицы можно создать постоянную базовую таблицу, создаваемую локальную временную таблицу или глобальную временную таблицу. Оператор определяется следующими синтаксическими правилами:

<table definition> ::= CREATE [ { GLOBAL LOCAL } TEMPORARY ] TABLE <table name> <table element list> [ ON COMMIT { DELETE PRESERVE } ROWS ] <table element list> ::= <left paren> <table element> [ { <comma> <table element> }... ] <right paren> <table element> ::= <column definition> |<table constraint definition>

Пояснения:

  • Если определение таблицы содержится в определении схемы и имя таблицы содержит имя схемы, то это имя схемы должно быть таким же, как явно или неявно специфицированное имя схемы в определении схемы.
  • Схема, идентифицируемая явным или неявным именем схемы, входящим в имя таблицы, не должна содержать таблиц с тем же именем.
  • Если указано ONCOMMIT, то должно быть указано и TEMPORARY.
  • Если указано TEMPORARY и не указано ONCOMMIT, то неявно предполагается наличие ONCOMMITDELETEROWS.
  • Определение таблицы должно содержать по крайней мере одно определение столбца.
  • При выполнении оператора определения таблицы создается набор описателей привилегий, определяющих привилегии INSERT, SELECT, UPDATE, DELETE и REFERENCES на этой таблице и INSERT, SELECT, UPDATE и REFERENCES для каждого определения столбца. Все привилегии являются передаваемыми и относящимися к идентификатору авторизации из определения схемы или модуля в зависимости от того, где выполняется оператор определения таблицы.
  • Определение столбца имеет следующий синтаксис:

    <column definition> ::= <column name> { <data type> <domain name> } [ <default clause> ] [ <column constraint definition>... ] [ <collate clause> ] <column constraint definition> ::= [ <constraint name definition> ] <column constraint> [ <constraint attributes> ] <constraint name definition> ::= CONSTRAINT <constraint name> <column constraint> ::= NOT NULL |<unique specification> |<references specification> |<check constraint definition> <constraint attributes> ::= <constraint check time> [ [ NOT ] DEFERRABLE ] |[ NOT ] DEFERRABLE [ <constraint check time> ]




    Содержание  Назад  Вперед