MySQL हमें एक तालिका में एकाधिक कॉलम पर एक विदेशी कुंजी बाधा जोड़ने की अनुमति देता है। शर्त यह है कि चाइल्ड टेबल में प्रत्येक विदेशी कुंजी को अलग-अलग पैरेंट टेबल को संदर्भित करना चाहिए।
उदाहरण
मान लीजिए कि हमारे पास एक तालिका '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 क्वेरी की मदद से हम '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) 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' विदेशी कुंजी बाधाओं पर।