MySQL อนุญาตให้เพิ่ม FOREIGN KEY constraint บนหลายคอลัมน์ในตาราง เงื่อนไขคือ Foreign Key แต่ละตัวใน child table ต้องอ้างอิงถึง parent table ที่ต่างกัน
ตัวอย่าง
สมมติว่ามีตาราง 'customer2' ที่มี Primary Key บน 'cust_unq_id':
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 | | +-------------+-------------+------+-----+---------+-------+
ตาราง orders1 มี Foreign Key บน 'Cust_id' อ้างอิง 'customer' อยู่แล้ว:
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 | | +--------------+-------------+------+-----+---------+-------+
เพิ่ม Foreign Key constraint อีกตัวบน 'cust_unq_id' อ้างอิง 'customer2':
mysql> ALTER TABLE orders1 ADD FOREIGN KEY(cust_unq_id) REFERENCES Customer2(Cust_unq_id); Query OK, 0 rows affected (0.25 sec) 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 | | +--------------+-------------+------+-----+---------+-------+
ตาราง 'orders1' มี Foreign Key 2 ตัว: บน 'cust_id' และ 'cust_unq_id'