MySQL BUITELANDSE SLEUTEL beperking
MySQL BUITELANDSE SLEUTEL beperking
Die FOREIGN KEY
beperking word gebruik om aksies te voorkom wat skakels tussen tabelle sal vernietig.
A FOREIGN KEY
is 'n veld (of versameling velde) in een tabel, wat verwys na die PRIMARY KEY
in 'n ander tabel.
Die tabel met die vreemde sleutel word die kindtabel genoem, en die tabel met die primêre sleutel word die verwysde of ouertabel genoem.
Kyk na die volgende twee tabelle:
Persone Tabel
PersonID | LastName | FirstName | Age |
---|---|---|---|
1 | Hansen | Ola | 30 |
2 | Svendson | Tove | 23 |
3 | Pettersen | Kari | 20 |
Bestellingstabel
OrderID | OrderNumber | PersonID |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
Let daarop dat die "PersonID"-kolom in die "Bestellings"-tabel na die "PersonID"-kolom in die "Persone"-tabel wys.
Die "PersonID"-kolom in die "Persone"-tabel is die PRIMARY KEY
in die "Persone"-tabel.
Die "PersonID"-kolom in die "Bestellings"-tabel is 'n
FOREIGN KEY
in die "Bestellings"-tabel.
Die FOREIGN KEY
beperking verhoed dat ongeldige data in die vreemde sleutelkolom ingevoeg word, want dit moet een van die waardes wees wat in die ouertabel vervat is.
BUITELANDSE SLEUTEL op CREATE TABLE
Die volgende SQL skep 'n FOREIGN KEY
op die "PersonID" kolom wanneer die "Bestellings" tabel geskep word:
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
Om die naam van 'n beperking toe te laat, en om 'n beperking op veelvuldige kolomme FOREIGN KEY
te definieer , gebruik die volgende SQL-sintaksis:
FOREIGN KEY
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID)
);
BUITELANDSE SLEUTEL op ALTER TABEL
Om 'n FOREIGN KEY
beperking op die "PersonID"-kolom te skep wanneer die "Bestellings"-tabel reeds geskep is, gebruik die volgende SQL:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
Om die naam van 'n beperking toe te laat, en om 'n beperking op veelvuldige kolomme FOREIGN KEY
te definieer , gebruik die volgende SQL-sintaksis:
FOREIGN KEY
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
LAAT 'n BUITELANDSE SLEUTEL-beperking
Om 'n FOREIGN KEY
beperking te laat vaar, gebruik die volgende SQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;