Cudzí kľúč
Cudzí kľúč (angl. foreign key) je v prostredí relačných databáz integritné obmedzenie, ktoré vytvorí spojenie jedného alebo viacerých stĺpcov tabuľky (odkazujúca tabuľka) so stĺpcom (stpĺcami) inej tabuľky (odkazovaná tabuľka). Stĺpec, na ktorý odkazujeme pomocou cudzieho kľúča, musí byť primárnym kľúčom tabuľky. Hodnota cudzieho kľúča musí odkazovať na existujúci riadok odkazovanej tabuľky (výnimku tvorí hodnota NULL). Cudzí kľúč môže odkazovať aj do rovnakej tabuľky.
V tabuľke môže byť aj viacero cudzích kľúčov a každý z nich môže odkazovať do inej tabuľky.
Vytvorenie cudzieho kľúča
Pridanie cudzieho kľúča do existujúcej tabuľky je podľa normy SQL:2003 definované takto:
ALTER TABLE <označenie odkazujúcej tabuľky>
ADD [ CONSTRAINT <označenie cudzieho kľúča> ]
FOREIGN KEY ( <označenie odkazujúceho stĺpca> {, <označenie odkazujúceho stĺpca>}... )
REFERENCES <označenie odkazovanej tabuľky> [ ( <označenie odkazovaného stĺpca> {, <označenie odkazovaného stĺpca>}... ) ]
[ ON UPDATE <vykonaná akcia> ]
[ ON DELETE <vykonaná akcia> ]
Príklad
V databáze sú vytvorené tabuľky:
- Citatel so stĺpcami rodne_cislo, meno, priezvisko
- Kniha so stĺpcami ISBN, autor, vypozical
Stĺpec vypozical bude cudzí kľúč, ktorý bude odkazovať na hodnotu stĺpca rodne_cislo. V tomto prípade musí byť hodnota stĺpca vypozical buď nejaká platná hodnota stĺpca rodne_cislo z tabuľky Citatel, alebo NULL (knihu nemá nikto vypožičanú).