MySQL YABANCI ANAHTAR Kısıtlaması
MySQL YABANCI ANAHTAR Kısıtlaması
FOREIGN KEY
Kısıtlama, tablolar arasındaki bağlantıları yok edecek eylemleri önlemek için kullanılır .
A FOREIGN KEY
, bir tablodaki, başka bir tablodakine atıfta bulunan bir alandır (veya alanlar topluluğudur) PRIMARY KEY
.
Yabancı anahtara sahip tabloya alt tablo, birincil anahtara sahip tabloya başvurulan veya ana tablo denir.
Aşağıdaki iki tabloya bakın:
Kişiler Tablosu
PersonID | LastName | FirstName | Age |
---|---|---|---|
1 | Hansen | Ola | 30 |
2 | Svendson | Tove | 23 |
3 | Pettersen | Kari | 20 |
Sipariş Tablosu
OrderID | OrderNumber | PersonID |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
"Siparişler" tablosundaki "PersonID" sütununun "Persons" tablosundaki "PersonID" sütununu gösterdiğine dikkat edin.
"Kişiler" tablosundaki "PersonID" sütunu, "Kişiler" tablosundaki sütundur PRIMARY KEY
.
"Siparişler" tablosundaki "PersonID" sütunu, "Siparişler" tablosundaki bir sütundur
FOREIGN KEY
.
Kısıtlama, üst tabloda bulunan FOREIGN KEY
değerlerden biri olması gerektiğinden, yabancı anahtar sütununa geçersiz verilerin eklenmesini engeller.
CREATE TABLOSUNDA YABANCI ANAHTAR
Aşağıdaki SQL FOREIGN KEY
, "Siparişler" tablosu oluşturulduğunda "PersonID" sütununda bir a oluşturur:
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
Bir FOREIGN KEY
kısıtlamanın adlandırılmasına izin vermek ve birden çok sütunda bir kısıtlama tanımlamak
FOREIGN KEY
için aşağıdaki SQL sözdizimini kullanın:
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)
);
ALTER TABLOSUNDA YABANCI ANAHTAR
FOREIGN KEY
"Siparişler" tablosu zaten oluşturulduğunda "PersonID" sütununda bir kısıtlama oluşturmak için aşağıdaki SQL'i kullanın:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
Bir FOREIGN KEY
kısıtlamanın adlandırılmasına izin vermek ve birden çok sütunda bir kısıtlama tanımlamak
FOREIGN KEY
için aşağıdaki SQL sözdizimini kullanın:
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
BİR YABANCI ANAHTAR Kısıtlaması DÜŞÜN
Bir FOREIGN KEY
kısıtlamayı kaldırmak için aşağıdaki SQL'i kullanın:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;