Latest web development tutorials

SQL FOREIGN KEY Kendala

SQL FOREIGN KEY Kendala

FOREIGN KEY dalam satu meja poin ke yang lain KEY meja PRIMARY.

Mari kita gunakan contoh untuk menjelaskan kunci asing. Pertimbangkan dua tabel berikut:

"Orang" tabel:

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

"Pesanan" tabel:

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

Harap dicatat, "Pesanan" meja "P_Id" kolom titik "Orang" tabel "P_Id" kolom.

"Orang" tabel "P_Id" kolom adalah "Orang" tabel PRIMARY KEY.

"Pesanan" meja "P_Id" kolom adalah "Pesanan" meja FOREIGN KEY.

ASING kendala KUNCI digunakan untuk mencegah kerusakan pada hubungan antara perilaku meja.

ASING kendala KUNCI juga mencegah data ilegal ke dalam kolom kunci asing, itu harus satu karena menunjuk ke meja.


SQL ASING kendala KUNCI CREATE TABLE saat

Berikut SQL ketika "Pesanan" tabel dibuat untuk membuat kendala FOREIGN KEY pada kolom "P_Id":

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)
)

Untuk nama ASING kendala KUNCI, dan menentukan sejumlah kolom ASING KEY kendala, menggunakan sintaks SQL berikut:

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)
)


SQL FOREIGN KEY kendala ALTER TABLE ketika

Ketika "Pesanan" tabel telah dibuat untuk kolom buat ASING kendala KUNCI "P_Id", silakan gunakan SQL berikut:

MySQL / SQL Server / Oracle / MS Access:

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

Untuk nama ASING kendala KUNCI, dan menentukan sejumlah kolom ASING KEY kendala, menggunakan sintaks SQL berikut:

MySQL / SQL Server / Oracle / MS Access:

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


Urungkan ASING kendala KUNCI

Untuk menjatuhkan kendala FOREIGN KEY, gunakan SQL berikut:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders