En son web geliştirme öğreticiler
 

SQL YABANCI KEY Kısıtlama


SQL YABANCI KEY Kısıtlama

Başka bir tablodaki bir birincil anahtar için bir tablo noktalarında bir yabancı anahtar.

bir örnekle yabancı anahtar açıklayalım. Aşağıdaki iki tablo bak:

"Persons" tablosu:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

"Orders" tablosu:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Not "P_Id" sütun "Orders" için tablo noktaları "P_Id" sütun "Persons" tablosundaki.

"P_Id" sütununda "Persons" tablosundaki PRIMARY KEY olan "Persons" tablosundaki.

"P_Id" sütun "Orders" tablosunda bir yabancı anahtar olan "Orders" tablo.

Yabancı anahtar kısıtlaması tablolar arasındaki bağlantıları yok edeceğini eylemleri engellemek için kullanılır.

o işaret tablosunda bulunan değerlerden biri olması gerekir, çünkü yabancı anahtar kısıtlaması da, yabancı anahtar sütuna sokulan geçersiz veriler sağlar.


TABLO OLUŞTURMA SQL YABANCI KEY Kısıtlama

Aşağıdaki SQL üzerinde YABANCI KEY yaratır "P_Id" zaman sütununda "Orders" tablosu oluşturulur:

MySQL:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

Ve aşağıdaki SQL sözdizimini kullanın, birden çok sütun üzerinde bir FOREIGN KEY kısıtlaması tanımlamak için yabancı anahtar kısıtlaması adlandırma izin vermek için:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

ALTER TABLE SQL YABANCI KEY Kısıtlama

Üzerinde bir FOREIGN KEY kısıtlaması oluşturmak için "P_Id" sütununda "Orders" tablosu zaten oluşturulur, aşağıdaki SQL kullanın:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Ve aşağıdaki SQL sözdizimini kullanın, birden çok sütun üzerinde bir FOREIGN KEY kısıtlaması tanımlamak için yabancı anahtar kısıtlaması adlandırma izin vermek için:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

FOREIGN KEY kısıt

FOREIGN KEY kısıtlaması bırak için aşağıdaki SQL kullanın:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders