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:
(
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:
(
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:
(
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:
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:
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:
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
DROP CONSTRAINT fk_PerOrders