SQL - Idegen kulcs

SQL Idegen kulcs:

Az idegen kulcs utal a másik táblázat elsődleges kulcsára. Az idegen kulcs megadása hasonló az elsődleges kulcshoz. A különbség mindössze annyi, hogy az idegen kulcsnál mindig meg kell adni, hogy az attribútum melyik másik tábla kulcsmezőjéhez kapcsolódik.

A "személyek" táblázat:

személyek_azonosító keresztnév vezetéknév cím város
1 Péter Kovács Albert út 2 Budapest
2 István Tóth Iskola út 34 Debrecen
3 Viola Kiss Kiskörút út 12 Balmazújváros
4 Aranka Török Széchenyi út 36 Siófok

A "Rendelések" táblázat:

rendelés_azonosító rendelés_szám személy_azonosító
1 23415 3
2 22341 2
3 20210 3
4 12340 2
5 85275 23

 

A "rendelések" táblában a rendelési azonosító utal a 'Személyek' tábla személyi azonosítójára. Az idegen kulcs megakadályozza, hogy érvénytelen adatokkal egészül ki a táblázat idegen kulcs oszlopa.

SQL idegen kulcs a új táblában:

MySQL:

CREATE TABLE rendelések
(
rendelések_azonosító int NOT NULL,
rendelésekszám int NOT NULL,
személyek_azonosító int,
PRIMARY KEY (rendelések_azonosító),
FOREIGN KEY (személyek_azonosító) REFERENCES személyek(személyek_azonosító)
)

SQL Server / Oracle / MS Access:

CREATE TABLE személyek
(
rendelések_azonosító int NOT NULL PRIMARY KEY,
rendelésekszám int NOT NULL,
személyek_azonosító int FOREIGN KEY REFERENCES személyek(személyek_azonosító)
)

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE személyek
(
rendelések_azonosító int NOT NULL,
rendelésekszám int NOT NULL,
személyek_azonosító int,
PRIMARY KEY (rendelések_azonosító),
CONSTRAINT fk_PerOrders FOREIGN KEY (személyek_azonosító)
REFERENCES személyek(személyek_azonosító)
)

SQL  idegen kulcs változó táblában:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE személyek
ADD FOREIGN KEY (személyek_azonosító)
REFERENCES személyek(személyek_azonosító)

 

 

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE személyek
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (személyek_azonosító)
REFERENCES személyek(személyek_azonosító)

 

 

A hozzászólás csak a regisztrált és bejelentkezett tagok számára engedélyezett!

Oldalainkat 36 vendég böngészi
Látogatóink száma: 2010.07.10 -től