Creați cheie externă

O cheie externă cheie externă este de a lega tabele părinte și copil în baza de date. Ie Se asigură că valorile câmpurilor din tabelul părinte înregistrează setul de valori domeniul înregistrărilor de masă a copilului. Pe această condiție poate fi determinată de relațiile dintre entități într-o bază de date de „unu-la-unu“ și „unu-la-mulți“. O cheie externă se bazează pe coloanele din tabel pentru copii, valorile care se referă la valorile înregistrărilor în tabela părinte.

Atunci când unul sau mai multe câmpuri într-un tabel de referință de numărul corespunzător de câmpuri într-un alt tabel - că această legătură se numește o cheie externă cheie externă. și domeniul (e) la care se face referire este numit cheia părinte. Denumirile de chei externe și părintele nu trebuie să fie identice. chei externe și mamă trebuie să aibă aceleași tipuri de câmpuri, care sunt situate în aceeași ordine. Fiecare valoare a domeniilor cheie străine trebuie să se refere în mod explicit la valoarea corespunzătoare a cheii părinte. Dacă această condiție este îndeplinită, atunci baza de date este într-o integritate referențială. de control care implementează serverul.

- columns_table
o listă de coloane într-un tabel inclus într-o cheie externă; Simbolul coloanelor de separare - o virgulă.

- pktable
tabel care conține cheia părinte.

- columns_ptable
mamă lista de coloane cheie.

coloană listează cheile exterioare și părintele trebuie să fie compatibil, adică

  • au același număr de coloane;
  • tipuri de coloane străine cheie trebuie să se potrivească cu tipurile de coloana cheie părinte.

- regulă
o regulă care poate determina valoarea unei domenii-cheie străine, atunci când tranzacția LMD în tabelul părinte. [CASCADE | RESTRICT | SET NULL | Nici o acțiune | SET DEFAULT]. Baze de date controlează valorile câmpurilor aferente ( „filiale“) tabele în timpul actualizării, sau să șteargă datele din tabelul părinte.

regula CASCADE

regula CASCADE SQL trebuie utilizat dacă este necesar, în tabelele aferente pentru a actualiza sau șterge înregistrări atunci când actualizați sau ștergeți înregistrările tabelei părinte. Ie ce se întâmplă cu înregistrarea în tabelul părinte, același lucru se va întâmpla cu înregistrarea în tabelul de copii.

cârmuiesc RESTRICT

Regula SQL RESTRICT trebuie utilizat în cazul în care este necesar pentru a preveni îndepărtarea tabelei părinte înregistrează prezența înregistrărilor aferente în tabelul de copii.

Regula SET NULL

În cazul în care descrierea regulii cheii externe SET NULL utilizat. înregistrările din tabelul de copil va fi setat la zero când actualizarea sau ștergerea înregistrărilor relevante ale tabelei părinte. Desigur, această regulă va fi îndeplinită în cazul în care câmpurile de masă pentru copii este permis.

Nu există nicio regulă ACȚIUNE

Regula SET DEFAULT

În coloana (e) din exterior intrările din tabelul de filiale sunt introduse valori de coloane cheie în mod implicit, crearea de masă (parametrul DEFAULT). Dacă valoarea nu este definită, o excepție este aruncată.

Crearea cheie externă cheie externă poate fi atât cu tabelul atunci când tabela este deja creată de către mamă, cât și separat. Când creați o cheie externă separat de masă, ar trebui să utilizați operatorul „ALTER TABLE nume_tabelă ADD CONSTRAINT cheii externe de externe.“.

De multe ori folosesc chei străine cu referire la chei primare, este o strategie bună. În acest caz, cheile străine sunt asociate nu numai cu cheia părinte, care se referă; ei se leagă la un anumit rând al tabelei părinte, în care se află cheia.

Vom crea trei mese. utilizatorii ghid de utilizare mărfuri mărfuri orientative și masa de lucru cu facturi / facturi facturi. Tabelul Facturi vor fi stocate înregistrările care se leagă de utilizator și ID-urile de mărfuri. Ca o bază de date folosind MySQL.

script-uri SQL pentru a crea tabele

Pentru „facturi“, un tabel va crea chei străine care asigură o cascadă de înregistrări de actualizare atunci când actualizarea înregistrările relevante ale tabelei părinte, dar blochează eliminarea „înregistrări părinte.“ Astfel, orice modificări în tabelul de utilizatori și mărfurile se vor reflecta automat în „facturile“ de masă. Dar, în cazul în care bunurile comandate sau în cazul în care utilizatorul are un cont, înregistrarea părinte nu poate fi șters.

Creați cheie externă

Tastele externe cheie externă pot fi create folosind următoarele SQL-script:

De asemenea, cheie externă „facturi“ de masă, puteți crea o schimbare în tabelul care descrie script-ul.

Să încercăm să adăugați o înregistrare la un tabel de deasupra capului: