Kesalahan FOREIGN KEY SQL

Kesalahan FOREIGN KEY SQL

Kunci luar di tabel satu menunjuk ke kunci utama di tabel lain.

Kami akan menjelaskan kunci luar melalui contoh. Lihat tabel di bawah ini:

Tabel "Persons":

Id_P LastName FirstName Alamat City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

Tabel "Orders":

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1

Perhatikan bahwa kolom "Id_P" di "Orders" menunjuk ke kolom "Id_P" di tabel "Persons".

Kolom "Id_P" di tabel "Persons" adalah kunci utama di tabel "Persons".

Kolom "Id_P" di tabel "Orders" adalah kunci luar di tabel "Orders".

Kunci luar FOREIGN KEY digunakan untuk mencegah tindakan yang menghancurkan hubungan antar tabel.

Kunci luar FOREIGN KEY juga dapat mencegah pengecekan data ilegal di kolom kunci luar, karena ia harus menjadi salah satu nilai di tabel yang ditujukan.

Kunci luar FOREIGN KEY dalam CREATE TABLE

SQL di bawah ini membuat kunci luar FOREIGN KEY untuk kolom "Id_P" ketika tabel "Orders" dibuat:

MySQL:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
Kunci Utama (Id_O),
Kunci luar (Id_P) merujuk ke Persons(Id_P)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)

Jika perlu menamakan pengaturan FOREIGN KEY serta menentukan pengaturan FOREIGN KEY untuk beberapa kolom, gunakan kalimat SQL di bawah ini:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
Kunci Utama (Id_O),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)

Pengaturan FOREIGN KEY Constraint di ALTER TABLE SQL

Jika membuat pengaturan FOREIGN KEY untuk kolom "Id_P" saat tabel "Orders" sudah ada, gunakan SQL di bawah ini:

MySQL / SQL Server / Oracle / MS Access:

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

Jika perlu menamakan pengaturan FOREIGN KEY serta menentukan pengaturan FOREIGN KEY untuk beberapa kolom, gunakan kalimat SQL di bawah ini:

MySQL / SQL Server / Oracle / MS Access:

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

Tarik balik pengaturan FOREIGN KEY

Untuk menarik balik pengaturan FOREIGN KEY, gunakan SQL di bawah ini:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders