KUNCI ASING SQL
Kekangan KUNCI ASING SQL
KUNCI ASING dalam satu jadual menunjuk ke KUNCI UTAMA dalam jadual lain.
Mari kita terangkan kunci asing melalui contoh. Sila lihat dua jadual berikut:
jadual "Orang":
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
Jadual "Pesanan":
O_Id | OrderNo | P_Id |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
Perhatikan bahawa lajur "P_Id" dalam jadual "Pesanan" menghala ke lajur "P_Id" dalam jadual "Orang".
Lajur "P_Id" dalam jadual "Orang" ialah KUNCI UTAMA dalam jadual "Orang".
Lajur "P_Id" dalam jadual "Pesanan" ialah KUNCI ASING dalam jadual "Pesanan".
Kekangan KUNCI ASING digunakan untuk menghalang tingkah laku yang memutuskan cantuman antara jadual.
Kekangan KUNCI ASING juga menghalang data haram daripada dimasukkan ke dalam lajur kunci asing kerana ia mestilah salah satu nilai dalam jadual yang ditunjukkannya.
Kekangan KUNCI ASING SQL apabila CREATE TABLE
SQL berikut mencipta kekangan KUNCI ASING pada lajur "P_Id" apabila jadual "Pesanan" dicipta:
MySQL:
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,<🎜 KUNCI UTAMA (O_Id),
KUNCI ASING (P_Id) RUJUKAN Orang(P_Id)
)
SQL Server/Oracle/MS Access:< . 🎜 >
Untuk menamakan kekangan KUNCI ASING dan mentakrifkan kekangan KUNCI ASING untuk berbilang lajur, sila gunakan sintaks SQL berikut:MySQL / SQL Server / Oracle / MS Access:
< . fk_PerOrders FOREIGN KUNCI (P_Id)
RUJUKAN Orang(P_Id)
)
<"🎜"w jadual telah dibuat, jika anda perlu mencipta kekangan KUNCI ASING pada lajur "P_Id", sila gunakan SQL berikut:
MySQL / SQL Server / Oracle / MS Access:MySQL / SQL Server / Oracle / MS Access:
UBAH Pesanan JADUAL
TAMBAH KEKANGAN fk_PerOrders
KUNCI ASING (P_Id)
Batalkan kekangan KUNCI ASINGUntuk batalkan kekangan FOREIGN>
Untuk batalkan KEY gunakan SQL di bawah:
MySQL:UBAH Pesanan JADUAL
SQL Akses Pelayan/Oracle/MS: