Rumah > pangkalan data > tutorial mysql > Bagaimanakah kita boleh mengedarkan kekangan UTAMA ASING pada berbilang lajur?

Bagaimanakah kita boleh mengedarkan kekangan UTAMA ASING pada berbilang lajur?

王林
Lepaskan: 2023-09-04 12:17:02
ke hadapan
1131 orang telah melayarinya

我们如何在多列上分配 FOREIGN KEY 约束?

MySQL membolehkan kami menambah kekangan KUNCI ASING pada berbilang lajur dalam jadual. Syaratnya ialah setiap kunci asing dalam jadual anak mesti merujuk kepada jadual induk yang berbeza.

Contoh

Andaikan kita mempunyai jadual bernama 'customer2' yang mempunyai kekangan kunci utama pada medan 'cust_unq_id' seperti yang ditunjukkan di bawah -

mysql> describe customer2;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| cust_id     | int(11)     | YES  |     | NULL    |       |
| First_name  | varchar(20) | YES  |     | NULL    |       |
| Last_name   | varchar(20) | YES  |     | NULL    |       |
| City        | varchar(10) | YES  |     | NULL    |       |
| cust_unq_id | int(11)     | NO   | PRI | 0       |       |
+-------------+-------------+------+-----+---------+-------+
5 rows in set (0.06 sec)
Salin selepas log masuk

Kita sudah mempunyai jadual bernama order1 yang sudah Terdapat kekangan kunci asing pada medan 'Cust_id', yang merujuk kepada 'pelanggan' jadual induk.

mysql> describe orders1;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| order_id     | int(11)     | NO   | PRI | NULL    |       |
| Product_name | varchar(25) | YES  |     | NULL    |       |
| orderdate    | date        | YES  |     | NULL    |       |
| Cust_id      | int(11)     | YES  | MUL | NULL    |       |
| cust_unq_id  | int(11)     | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
5 rows in set (0.04 sec)
Salin selepas log masuk

Kini, dengan bantuan pertanyaan ALTER TABLE berikut, kita boleh menambah satu lagi kekangan kunci asing pada medan "cust_unq_id" yang merujuk kepada jadual induk "customer2"

mysql> Alter table orders1 add FOREIGN KEY(cust_unq_id) REFERENCES Customer2(Cust_unq_id);
Query OK, 0 rows affected (0.25 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> describe orders1;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| order_id     | int(11)     | NO   | PRI | NULL    |       |
| Product_name | varchar(25) | YES  |     | NULL    |       |
| orderdate    | date        | YES  |     | NULL    |       |
| Cust_id      | int(11)     | YES  | MUL | NULL    |       |
| cust_unq_id  | int(11)     | YES  | MUL | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
5 rows in set (0.06 sec)
Salin selepas log masuk

Seperti yang dapat dilihat daripada set hasil di atas, jadual "pesanan1" mempunyai dua Terdapat dua kekangan kunci asing, satu pada "cust_id" dan satu lagi pada "cust_unq_id" kekangan kunci asing.

Atas ialah kandungan terperinci Bagaimanakah kita boleh mengedarkan kekangan UTAMA ASING pada berbilang lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan