Syntax
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
Popis
Príkaz jazyka SQL
Obmedzenie FOREIGN KEY definuje cudzí kľúč v inej tabuľke. Cudzí kľúč definuje vzťah k primárnemu kľúču inej, alebo rovnakej tabuľke.
Vytvoríme si cvičné tabuľky, kde aplikujeme cudzie kľúče, ktoré vyplývajú z aplikačnej logiky.
CREATE TABLE cv_zakaznici
(
id_zak int
PRIMARY KEY,
firma varchar
(20
) NOT NULL,
kontakt_jmeno varchar
(20
),
adresa varchar
(20
),
mesto varchar
(15
),
obrat money,
dluh money
);
CREATE TABLE cv_objednavky
(
id_obj int
PRIMARY KEY,
id_zak int
NOT NULL,
datum_obj datetime
FOREIGN KEY (id_zak
) REFERENCES cv_zakaznici
(id_zak
)
);
CREATE TABLE cv_zbozi
(
id_zbo int
NOT NULL,
id_obj int
NOT NULL,
nazev varchar
(30
),
jedn_cena money,
mnozstvi int
FOREIGN KEY (id_obj
) REFERENCES cv_objednavky
(id_obj
)
);
Situáciu môžeme znázorniť pomocou názorných diagramov, ktoré môžeme vygenerovať pomocou rôznych nástrojov.