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

क्या विदेशी कुंजी वाले टेबल कॉलम न्यूल हो सकते हैं?

हां, आप बाधा तभी लागू कर सकते हैं जब मान NULL न हो। इसे निम्न उदाहरण से आसानी से परखा जा सकता है:

CREATE DATABASE t;
USE t;

CREATE TABLE parent (id INT NOT NULL,
                     PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE child (id INT NULL, 
                    parent_id INT NULL,
                    FOREIGN KEY (parent_id) REFERENCES parent(id)
) ENGINE=INNODB;


INSERT INTO child (id, parent_id) VALUES (1, NULL);
-- Query OK, 1 row affected (0.01 sec)


INSERT INTO child (id, parent_id) VALUES (2, 1);

-- ERROR 1452 (23000): Cannot add or update a child row: a foreign key 
-- constraint fails (`t/child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY
-- (`parent_id`) REFERENCES `parent` (`id`))

पहला इंसर्ट पास हो जाएगा क्योंकि हम parent_id . में एक NULL डालते हैं . दूसरी प्रविष्टि विदेशी कुंजी बाधा के कारण विफल हो जाती है, क्योंकि हमने एक ऐसा मान डालने का प्रयास किया है जो parent में मौजूद नहीं है। टेबल।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL त्रुटि #1071 - निर्दिष्ट कुंजी बहुत लंबी थी; अधिकतम कुंजी लंबाई 767 बाइट्स है

  2. PHP PDOException:SQLSTATE [HY093]:अमान्य पैरामीटर संख्या

  3. बेस्ट मैच द्वारा MySQL ऑर्डर

  4. एक क्वेरी में एकाधिक तालिकाओं में सम्मिलित करें

  5. SQL कॉलम में सबसे अधिक बार आने वाला मान ज्ञात करें