|
![]() | Příkaz CREATE TABLE - vytvoření tabulky | ![]() | Databázové tabulky | Indexy k databázovým tabulkám | ![]() |
popis_sloupce ::= jméno_sloupce typ [ DEFAULT implic_hodnota ] [vlastnost_sloupce {, vlastnost_sloupce}... ] [ jazyk_a_třídění ] implic_hodnota ::= výraz | USER | UNIQUE vlastnost_sloupce ::= PRIMARY KEY | UNIQUE | INDEX | NOT NULL | REFERENCES jméno_tabulky jméno_sloupce | CHECK ( podmínka )
Popis sloupce definuje vlastnosti sloupce v tabulce. Musí obsahovat jméno a typ sloupce.
Údaj jazyk_a_třídění lze uvést pouze pro znakové řetězce.
Implicitní hodnota se do sloupce zapíše v nově vkládaných záznamech, pokud pro sloupec není zadána jiná hodnota. Je-li implicitní hodnota zadána výrazem, pak výraz musí být stejného typu jako sloupec. Implicitní hodnotu nelze zadat pro sloupce BINARY a BLOB.
Je-li chyba v zápisu implicitní hodnoty sloupce, dojde pouze k varování (ERROR_IN_DEFVAL) a transakce není odvolána.
Například pro sloupce typu DATE, TIME nebo TIMESTAMP se jako implicitní hodnoty používají funkce CURRENT_DATE, CURRENT_TIME nebo CURRENT_TIMESTAMP.
Pro řetězce lze jako implicitní hodnotu použít speciální hodnotu USER označující uživatele vkládajícího záznam. Pro sloupec typu BINARY (binární řetězec) je USER binární ID uživatele, pro CHAR(n) (znakový řetězec) je to logovací jméno uživatele.
Implicitní hodnota se používá také pro generování unikátních klíčů. Plnou kontrolu na celočíselnými klíči poskytují sekvence. Kromě toho lze pro sloupce typu INTEGER použít speciální implicitní hodnotu UNIQUE. Ta přiděluje hodnoty sloupce ze speciálního čítače sdruženého s tabulkou.
Generování unikátních klíčů pomocí implicitní hodnoty však funguje pouze tehdy, pokud hodnoty ve sloupci nejsou dodatečně měněny. Explicitní zápis jiné hodnoty do takového sloupce může zablokovat vkládání dalších záznamů, pokud by tím vznikla duplicita hodnot klíče.
Vlastnosti sloupce mají tento význam:
Vlastnosti sloupců jsou zkráceným zápisem jednoduchých případů vlastností tabulky. Protože je nelze pojmenovat, server jim přidělí automaticky vytvořená jména.
Integritní omezení zadaná jako vlastnosti sloupce neumožňují specifikovat čas provedení příslušné kontroly. Proto se uplatní implicitní nastavení určené příznaky kompatibility. Je-li potřeba vyhodnocovat omezení v jiném okamžiku, je nutno ho zadat jako omezení tabulky.
![]() | Příkaz CREATE TABLE - vytvoření tabulky | ![]() | Databázové tabulky | Indexy k databázovým tabulkám | ![]() |