Manual Tutorial...login
Manual Tutorial Permulaan SQL
pengarang:php.cn  masa kemas kini:2022-04-12 14:15:40

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_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Jadual "Pesanan":

O_IdOrderNoP_Id
1778953
2446783
3224562
4245621

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:

BUAT Pesanan JADUAL
(
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)
)

SQL FOREIGN KEY kekangan apabila ALTER TABLE

<"🎜"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:
< . berbilang lajur kekangan UTAMA, sila gunakan sintaks SQL berikut:


MySQL / SQL Server / Oracle / MS Access:



UBAH Pesanan JADUAL
TAMBAH KEKANGAN fk_PerOrders
KUNCI ASING (P_Id)
RUJUKAN Orang(P_Id)


Batalkan kekangan KUNCI ASING

Untuk batalkan kekangan FOREIGN>

Untuk batalkan KEY gunakan SQL di bawah:

MySQL:


UBAH Pesanan JADUAL
JATUHKAN KUNCI ASING fk_PerOrders

SQL Akses Pelayan/Oracle/MS:

UBAH Pesanan JADUAL
KEKANGAN DROP fk_PerOrders