Limitările tipului de cheie străină - programarea SQL

Limitele tipului FOREIGN KEY (cheie străină) sunt declarate pentru una sau mai multe coloane ale tabelului care se referă la coloana cu constrângerea UNIQUE sau KEY PRIMARY a altui tabel. (O cheie străină se poate referi la o valoare cu un semn unic sau o cheie primară în același tabel, dar aceste chei sunt rare.) După aceasta, cheile străine pot împiedica introducerea datelor în tabelul pentru care nu există valori corespunzătoare în tabelul asociat . Cheile externe sunt principalele modalități de determinare a relației dintre tabele într-o bază de date relațională. Iată câteva reguli privind cheile externe.







  • Mai multe chei externe pot exista simultan în aceeași tabelă.
  • Puteți declara o cheie străină pentru a defini o referință la o cheie primară sau la o valoare cu un atribut unic pentru a stabili o legătură directă între cele două tabele.

CURSUL EXTERIOR (coloana locală [, ...])

REFERINȚE legat tabel [(coloană asociată [, ...])].

Se numește tabelul și, dacă este necesar, o coloană (coloane) care stochează o listă de valori valabile pentru o cheie străină. Coloana asociată trebuie să fie deja definită în clauzele KEY PRIMARY NOT or DEFERRABLE KEY sau NOT DEFERRABLE UNIQUE KEY. Tipurile de tabele trebuie să se potrivească. De exemplu, dacă un tabel este o tabelă locală temporară, ambele trebuie să fie temporare și locale.

MATCH (FULL | PARTIAL | SIMPLE).

Determină gradul necesar de coincidență dintre coloana de legare (locală) și coloana asociată (externă) dacă există valori NULL în coloane.

O potrivire este acceptabilă dacă: 1) niciuna dintre coloanele de legare nu este NULL și toate valorile coincid cu toate valorile asociate

- Cheie pentru nivel de masă străină [CONSTRAINT [constraint_name]] KEY FOREIGN

(local_column [, ...]) REFERINȚE obligat_table [(coloană asociată [, ...])] [MATCH]

- Tastă nivel coloană externă [CONSTRAINT [constraint_name]

REFERINȚE legat tabel [(coloană asociată [, ...])] [MATCH]

CASCADE | RESTRICT | SET NULL | SET DEFAULT>] [Restricționarea [Restricții] [Timp de întârziere]

O potrivire este acceptabilă dacă cel puțin una dintre coloanele de legare este NULL, iar celelalte se potrivesc cu valorile corespunzătoare ale coloanei asociate.







O potrivire este acceptabilă atunci când orice valoare din coloana de legare este NULL sau se potrivește cu valoarea corespunzătoare a coloanei asociate. Acest tip de potrivire este acceptat în mod implicit.

Indică faptul că, dacă operația de actualizare UPDATE surprinde una sau mai multe coloane primare sau unice asociate cheii din tabelul asociat, trebuie să efectuați acțiunea corespunzătoare astfel încât integritatea referențială a datelor cheii străine să nu fie încălcată. Clauza ON UPDATE poate fi declarată separat sau împreună cu clauza ON DELETE. Dacă propoziția este omisă, implicit este ACTIVATĂ ACTUALIZAT.

Indică faptul că, dacă operația de ștergere DELETE captează una sau mai multe dintre coloanele asociate ale cheii primare sau unice din tabela conectată, trebuie să efectuați acțiunea corespunzătoare pentru a vă asigura că integritatea referențială a datelor cheii străine nu este încălcată. Clauza ON DELETE poate fi declarată separat sau împreună cu clauza ON UPDATE. În cazul în care propoziția este omisă, implicit este activat DELETE NO ACTION.

FĂRĂ ACȚIUNE CASCADE | RESTRICT | SET NULL | SET DEFAULT

Definește acțiunile pe care le efectuează baza de date pentru a asigura integritatea referențială a cheii externe atunci când valoarea cheie asociată primară sau unică este modificată sau șters.

Indică faptul că, dacă se modifică sau se șterge valoarea cheii primare sau unice asociate cheii externe, baza de date nu efectuează nicio acțiune.

Indică faptul că, dacă se modifică sau se șterge valoarea cheii primare sau unice, baza de date execută aceeași acțiune (adică șterge sau actualizează) pe cheia externă.

Indică faptul că baza de date nu vă va permite să modificați valoarea cheii primare sau unice asociate cheii externe.

Indică faptul că, dacă se modifică sau se șterge cheia primară sau unică, baza de date va seta valoarea cheii străine la NULL.

Specifică faptul că, dacă se modifică sau se șterge cheia primară sau unică, baza de date stabilește valoarea implicită pentru cheia externă (folosind valorile implicite pe care le specificați pentru coloane).

Ca și în exemplul de cod cu chei primare, această sintaxă generală poate fi utilizată atât pentru cheile externe la nivel de coloană, cât și pentru cheile la nivel de masă străine. Rețineți că limitele la nivel de coloană și la nivel de tabel funcționează exact la fel. Ele sunt pur și simplu definite la diferite nivele ale comenzii CREATE TABLE. În următorul exemplu, vom crea o cheie străină cu o singură coloană în coloana de vânzări care va face referire la coloana empidă a tabelului angajat. Vom crea această cheie străină în două moduri, mai întâi la nivelul coloanei și apoi la nivelul mesei.

Informații suplimentare despre acest subiect

Descrierea constrângerii PRIMARY KEY, cum se utilizează, care caracteristici pentru diferite platforme

Scopul principal și metoda de utilizare a constrângerii CHECK, sintaxa generală de utilizare

Descrierea constrângerii UNIQUE, reguli de bază pentru utilizarea în diferite platforme de baze de date

Restricții în bazele de date, care sunt, pentru care există și sunt utilizate, sintaxa







Articole similare

Trimiteți-le prietenilor: