Kesalahan FOREIGN KEY SQL
- Halaman sebelumnya Kunci Utama SQL
- Halaman berikutnya SQL Check
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
- Halaman sebelumnya Kunci Utama SQL
- Halaman berikutnya SQL Check