602SQL-Úplná dokumentace Index  

Příkaz CREATE DOMAIN (SQL)

příkaz_CREATE_DOMAIN ::= CREATE [ IF NOT EXISTS ] DOMAIN [schéma.]jméno_domény
  [ AS ] typ [ DEFAULT implic_hodnota ] [ NOT NULL ] [ integritní_omezení ] [ vyhodnocení ]
vyhodnoceni ::= INITIALLY { IMMEDIATE | DEFERRED }

Příkaz CREATE DOMAIN vytváří doménu zadaného datového typu.

Maximální délka jména domény je 31 znaků. Doména musí mít unikátní jméno v rámci schématu. Pokud doména zadaného jména již existuje, pak je-li použita klauzule IF NOT EXISTS, příkaz neprovede žádnou akci, v opačném případě dojde k chybě - nastane chybový sqlstate 40004 (KEY_DUPLICITY).

Pokud v rámci integritního omezení (klauzule CHECK) je třeba zadat více podmínek, spojte je operátory AND nebo OR. V popisu integritního_omezení se pro odkaz na hodnotu sloupce používá slovo VALUE. Například doména pro kladné celé číslo menší než 1000 se může definovat takto:

CREATE DOMAIN Positive AS INT CHECK (VALUE > 0 AND VALUE < 1000)

Vyhodnocení určuje čas vyhodnocení integritního omezení. INITIALLY IMMEDIATE určuje, že se kontrola bude provádět bezprostředně po provedení příkazu. INITIALLY DEFERRED určuje, že se kontrola vnitřního integritního omezení odloží na konec transakce.

Ve vývojovém prostředí 602SQL se domény navrhují interaktivním návrhářem. SQL podobu aktuálního návrhu si lze v každém okamžiku prohlédnout.

Příklad použití

Potřebujeme doménu typu řetězec v kódování CZ_ISO délky 12 znaků s podmínkou, že zadány musí být alespoň tři znaky:

DOMAIN `char_min3` CHAR(12) COLLATE CSISTRING 
CHECK (CHAR_LENGTH(VALUE)>2) INITIALLY DEFERRED 

Viz