Rumah >pangkalan data >tutorial mysql >Bagaimanakah kita boleh mengedarkan kekangan UTAMA ASING pada berbilang lajur?
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.
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)
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)
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)
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!