Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL टेबल के एकाधिक फील्ड पर FOREIGN KEY कंस्ट्रेंट जोड़ना

MySQL एक टेबल पर एकाधिक FOREIGN KEY कंस्ट्रेंट जोड़ने की अनुमति देता है, शर्त यह है कि प्रत्येक फॉरेन की अलग पैरेंट टेबल को रेफरेंस करे।

उदाहरण सेटअप

पैरेंट टेबल 1: customer

mysql> DESCRIBE customer;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| Cust_id  | int(11)     | NO   | PRI | NULL    |       |
| ...      | ...         | ...  | ... | ...     | ...   |
+----------+-------------+------+-----+---------+-------+

पैरेंट टेबल 2: customer2

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 (पहले से एक FK है)

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    |       |  -- FK to customer
| cust_unq_id  | int(11)     | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+

दूसरा FOREIGN KEY जोड़ना

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    |       |  -- नया FK
+--------------+-------------+------+-----+---------+-------+

नियम सारांश

नियमविवरण
एकाधिक FK अनुमतिहां, एक टेबल पर कई FK हो सकते हैं
अलग पैरेंट टेबलप्रत्येक FK अलग पैरेंट टेबल को रेफरेंस करे
कॉलम ओवरलैपएक ही कॉलम दो FK का हिस्सा नहीं हो सकता
Key कॉलमFK कॉलम पर MUL दिखता है

उपयोग के मामले

  • ऑर्डर टेबल: ग्राहक FK + सेल्समैन FK + वेयरहाउस FK
  • कई आयामों से रेफरेंस
  1. - MySQL डेटाबेस में फॉरेन की कैसे पहचानें?

    MySQL में SHOW CREATE TABLE का उपयोग करके फॉरेन की कंस्ट्रेंट पहचानना किसी टेबल पर परिभाषित फॉरेन की कंस्ट्रेंट देखने के लिए SHOW CREATE TABLE कमांड का उपयोग करें। यह पूरी टेबल परिभाषा दिखाता है जिसमें फॉरेन की विवरण शामिल होते हैं। उदाहरण के साथ पूर्ण कार्यान्वयन पैरेंट टेबल बनाना CREATE TABLE D

  1. - MySQL में sp_help के समान फ़ील्ड प्रकार और विदेशी कुंजी प्रतिबंध देखने के लिए SHOW CREATE कमांड

    MySQL में, आप SHOW CREATE कमांड की मदद से SQL Server के sp_help के समान कार्यक्षमता प्राप्त कर सकते हैं। यह कमांड टेबल या स्टोर्ड प्रोसीजर की संरचना दिखाता है, जिसमें कॉलम परिभाषाएं, डेटा प्रकार, प्राथमिक कुंजी, अद्वितीय कुंजी और विदेशी कुंजी प्रतिबंध शामिल होते हैं। केस 1: टेबल की संरचना देखना किस

  1. - MySQL में प्राइमरी की को कई टेबल में फॉरेन की के रूप में कैसे रेफ़र करें?

    ALTER TABLE ... ADD CONSTRAINT alter table yourSecondTableName add constraint `yourConstraintName` foreign key(`yourSecondTableNamePrimaryKey`) references yourFirstTableName(yourFirstTablePrimaryKeyColumnName); उदाहरण alter table demo66 add constraint `id_fk` foreign key(`user_id`) references