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

एक विदेशी कुंजी के रूप में भी एक ऑटो वृद्धि हुई प्राथमिक कुंजी का उपयोग कैसे करें?

ऐसा लगता है कि आपके पास संदर्भ और संदर्भित तालिकाएं विपरीत हैं। आप शायद यह करना चाहें:

ALTER TABLE `child ` ADD FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`);

आप विदेशी कुंजी को CREATE TABLE . में भी परिभाषित कर सकते हैं बयान, इस प्रकार है:

CREATE TABLE `parent` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `data` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

CREATE TABLE `child` (
  `parent_id` int(11) DEFAULT NULL,
  `related_ids` int(11) DEFAULT NULL,
  KEY `parent_id` (`parent_id`),
  KEY `related_ids` (`related_ids`),
  FOREIGN KEY (`parent_id`) REFERENCES `parent`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

टेस्ट केस:

INSERT INTO parent (`data`) VALUES ('test data 1');
Query OK, 1 row affected (0.01 sec)

INSERT INTO parent (`data`) VALUES ('test data 2');
Query OK, 1 row affected (0.01 sec)

INSERT INTO child (`parent_id`, `related_ids`) VALUES (1, 100);
Query OK, 1 row affected (0.01 sec)

INSERT INTO child (`parent_id`, `related_ids`) VALUES (2, 100);
Query OK, 1 row affected (0.01 sec)

INSERT INTO child (`parent_id`, `related_ids`) VALUES (3, 100);
ERROR 1452 (23000): Cannot add or update a child row: 
  a foreign key constraint fails 


  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 में TOP का कोई विकल्प है?

  2. mysql-अजगर स्थापित त्रुटि:फ़ाइल 'config-win.h' शामिल नहीं खोल सकता

  3. MySQL में ट्रिगर्स को कैसे निष्क्रिय करें?

  4. Google क्लाउड SQL को केवल तभी कैसे चलाएं जब मुझे इसकी आवश्यकता हो?

  5. mysql में डमी डेटा के साथ स्वचालित रूप से तालिका को पॉप्युलेट करें