Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL विदेशी कुंजी बाधा - पूर्णांक स्तंभ

आप NULL . को स्वीकार करने के लिए अपनी विदेशी कुंजी सेट करना चाह सकते हैं मान, और एक NULL . का उपयोग करें 0 . के बजाय मूल्य।

वैचारिक रूप से, NULL मतलब एक अज्ञात मान नहीं है . यदि आपकी पंक्ति में "मूल्य नहीं है/उसकी आवश्यकता नहीं है", तो मेरा मानना ​​है कि NULL बिल्कुल फिट बैठता है।

और हाँ, एक NULL value आपकी विदेशी कुंजी बाधा नहीं तोड़ेगी।

आइए एक बुनियादी उदाहरण बनाएं:

CREATE TABLE parents (
   id      int PRIMARY KEY, 
   value   int
) ENGINE = INNODB;

CREATE TABLE children (
   id         int PRIMARY KEY, 
   parent_id  int,
   FOREIGN KEY (parent_id) REFERENCES parent (id)
) ENGINE = INNODB;

फिर:

INSERT INTO parents VALUES (1, 100);
Query OK, 1 row affected (0.00 sec)

INSERT INTO children VALUES (1, 1);
Query OK, 1 row affected (0.00 sec)

INSERT INTO children VALUES (2, 0);
ERROR 1452 (23000): A foreign key constraint fails

INSERT INTO children VALUES (2, NULL);
Query OK, 1 row affected (0.00 sec)

SELECT * FROM children;
+----+-----------+
| id | parent_id |
+----+-----------+
|  1 |         1 |
|  2 |      NULL |
+----+-----------+
2 rows in set (0.01 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. किसी अन्य तालिका के फ़ील्ड मानों के आधार पर फ़ील्ड अपडेट करें

  2. Android के साथ MySQL डेटाबेस में छवि भेजना

  3. संग्रहीत प्रक्रियाओं का अर्थ पूर्व-संकलित है?

  4. एक्सए बनाम गैर-एक्सए जेडीबीसी चालक प्रदर्शन?

  5. शो टेबल के साथ मेल खाने वाली टेबल का नाम