CONSTRAINT je klíčové slovo jazyka SQL, které v databázové tabulce umožňuje vytvořit omezení s podmínkami, jež musí být splněny pro hodnoty jejích sloupců při vkládání nebo změnu záznamů. Tato omezení lze pojmenovat a nadále s nimi manipulovat jako s ostatními nedatovými objekty tabulky (kterými jsou například indexy, cizí klíče či spouště). Nemá-li návrhář databáze v plánu s těmito omezeními manipulovat, nemusí za CONSTRAINT specifikovat název omezení, ba co víc – pro většinu omezení tabulky lze v SQL vynechat i klíčové slovo CONSTRAINT.

Příklady

editovat

Vytvoření omezení c1 a c2 pro sloupce mesic a den, resp. jejich povolené hodnoty.

CREATE TABLE soutezni_otazka(
    mesic TINYINT,
    den TINYINT,
    otazka TEXT,
    CONSTRAINT c1 CHECK (mesic BETWEEN 1 AND 12),
    CONSTRAINT c2 CHECK (den BETWEEN 1 AND 31)
);

Vytvoření pojmenovaného omezení c2 pojícího se s klíčem tabulky.

CREATE TABLE produkty(
    id INT NOT NULL,
    nazev VARCHAR(50),
    cena DECIMAL(5,2),
    CONSTRAINT c2 PRIMARY KEY id
);

CONSTRAINT lze využít i pro vytvoření jiného než primárního klíče a též klíče nad vícero sloupci.[1] Následující příkaz vytvoří spolu s tabulkou omezení pro její záznamy, které zabrání vložení dne a měsíce, které (myšleno oba zároveň) již v tabulce existují:

CREATE TABLE soutezni_otazka(
    mesic BYTE,
    den BYTE,
    cena DECIMAL(5,2),
    CONSTRAINT c2 UNIQUE KEY mesic_den(mesic, den)
);

Reference

editovat

Související články

editovat

Externí odkazy

editovat