MySQL हमें एक तालिका में एक से अधिक फ़ील्ड पर एक FOREIGN KEY बाधा जोड़ने की अनुमति देता है। शर्त यह है कि चाइल्ड टेबल में प्रत्येक विदेशी कुंजी को अलग-अलग पैरेंट टेबल को संदर्भित करना चाहिए।
उदाहरण
मान लीजिए कि हमारे पास एक तालिका 'customer2' है, जिसमें '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 | | +-------------+-------------+------+-----+---------+-------+ 5 rows in set (0.06 sec)
और हमारे पास एक टेबल ऑर्डर1 है जिसमें पहले से ही 'Cust_id' फ़ील्ड पर एक विदेशी कुंजी बाधा है जो मूल तालिका 'ग्राहक' को संदर्भित करती है।
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)
अब, निम्नलिखित ALTER TABLE क्वेरी की सहायता से हम 'customer2' पैरेंट टेबल के संदर्भ में 'cust_unq_id' फ़ील्ड पर एक और विदेशी कुंजी बाधा जोड़ सकते हैं
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)
उपरोक्त परिणाम सेट से, यह देखा जा सकता है कि 'orders1' तालिका में दो हैं, एक 'cust_id' पर और दूसरी 'cust_unq_id' विदेशी कुंजी बाधाओं पर।