FOREIGN KEY
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}]
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)
);
(
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.