Cudzí kľúč

z Wikipédie, slobodnej encyklopédie

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[upraviť | upraviť zdroj]

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[upraviť | upraviť zdroj]

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ú).