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

MySQL में मौजूदा टेबल पर FOREIGN KEY कंस्ट्रेंट कैसे जोड़ें

मौजूदा MySQL टेबल के कॉलम पर ALTER TABLE ... ADD FOREIGN KEY स्टेटमेंट का उपयोग करके FOREIGN KEY कंस्ट्रेंट जोड़ा जा सकता है।

सिंटैक्स

ALTER TABLE table_name 
ADD FOREIGN KEY (column_name) 
REFERENCES parent_table(parent_column);

उदाहरण

Orders1 टेबल पर Cust_id कॉलम में FK जोड़ना, Customer टेबल के Cust_id (PK) को रेफरेंस करते हुए:

mysql> ALTER TABLE orders1 
    ADD FOREIGN KEY(Cust_id) 
    REFERENCES Customer(Cust_id);
Query OK, 0 rows affected (0.21 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    |       |  -- MUL = FK इंडेक्स
+--------------+-------------+------+-----+---------+-------+

पूर्व शर्तें

  • पैरेंट टेबल (Customer) मौजूद होनी चाहिए
  • पैरेंट कॉलम (Cust_id) पर PRIMARY KEY या UNIQUE इंडेक्स होना चाहिए
  • डेटा टाइप समान या संगत होने चाहिए
  • चाइल्ड टेबल में मौजूदा डेटा पैरेंट में मानों से मेल खाना चाहिए
  • दोनों टेबल InnoDB इंजन की होनी चाहिए

नामित कंस्ट्रेंट (वैकल्पिक)

ALTER TABLE orders1 
ADD CONSTRAINT fk_orders_customer 
FOREIGN KEY (Cust_id) REFERENCES Customer(Cust_id);

कैस्केड विकल्प

ALTER TABLE orders1 
ADD FOREIGN KEY (Cust_id) REFERENCES Customer(Cust_id)
ON DELETE CASCADE
ON UPDATE CASCADE;

सत्यापन

SHOW CREATE TABLE orders1;
-- CONSTRAINT परिभाषा दिखाएगा
  1. - MySQL में बूलियन (Boolean) फील्ड जोड़ें: TINYINT(1), BOOL, BOOLEAN

    MySQL में बूलियन डेटा टाइप: TINYINT(1), BOOL, BOOLEAN — सभी समानार्थी हैं मुख्य तथ्य: BOOL और BOOLEAN TINYINT(1) के समानार्थी (synonyms) हैं आंतरिक रूप से MySQL इन्हें TINYINT(1) में बदल देता है स्टोरेज: 1 बाइट (रेंज: -128 से 127 साइनड, 0 से 255 अनसाइनड) 0 = FALSE, 1 = TRUE (कोई भी गैर-शून्य = TRU

  1. - MySQL में UPDATE और CURDATE() का उपयोग करके मौजूदा टेबल में वर्तमान दिनांक जोड़ना

    MySQL में UPDATE स्टेटमेंट के साथ CURDATE() फ़ंक्शन का उपयोग करके मौजूदा टेबल के दिनांक कॉलम को वर्तमान दिनांक से अपडेट करें। सिंटैक्स UPDATE yourTableName SET yourColumnName = CURDATE(); उदाहरण: टेबल बनाना और डेटा डालना mysql> CREATE TABLE DemoTable ( -> DueDate DATETIME -> );

  1. - MySQL डेटाबेस में फॉरेन की कैसे पहचानें?

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