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

MySQL एरर 1452 - फॉरेन की कंस्ट्रेंट फेल: चाइल्ड रो एड/अपडेट नहीं कर सकते

एरर 1452 तब आता है जब चाइल्ड टेबल में ऐसी वैल्यू डालते हैं जो पैरेंट टेबल में मौजूद नहीं है।

उदाहरण

CREATE TABLE ForeignTable (id INT, name VARCHAR(200), Fk_pk INT);
CREATE TABLE primaryTable1 (Fk_pk INT, DeptName VARCHAR(200), PRIMARY KEY(Fk_pk));
ALTER TABLE ForeignTable ADD CONSTRAINT constFKPK FOREIGN KEY (Fk_pk) REFERENCES primaryTable1(Fk_pk);

-- पैरेंट में डेटा डाले बिना चाइल्ड में डालने की कोशिश
INSERT INTO ForeignTable VALUES (1, 'John', 1);
ERROR 1452 (23000): Cannot add or update a child row...

समाधान

  1. पहले पैरेंट टेबल में रिकॉर्ड डालें:
    INSERT INTO primaryTable1 VALUES (1, 'ComputerScience');
  2. फिर चाइल्ड टेबल में:
    INSERT INTO ForeignTable VALUES (1, 'John', 1); -- सफल

नियम: फॉरेन की वैल्यू पैरेंट में पहले मौजूद होनी चाहिए।

  1. - MySQL में UNIQUE कंस्ट्रेंट और ON DUPLICATE KEY UPDATE का उपयोग करके डुप्लिकेट कुंजी पर अपडेट करना

    MySQL में ON DUPLICATE KEY UPDATE के साथ अपसर्ट MySQL का ON DUPLICATE KEY UPDATE क्लॉज आपको एक रिकॉर्ड डालने की अनुमति देता है, लेकिन यदि एक अद्वितीय कुंजी संघर्ष होता है, तो मौजूदा रिकॉर्ड को अपडेट करता है। इसके लिए लक्ष्य कॉलम पर UNIQUE कंस्ट्रेंट की आवश्यकता होती है। उदाहरण: नाम पर अद्वितीय कंस्

  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

  1. - MySQL में विदेशी कुंजी का उपयोग करना

    आइए समझते हैं कि MySQL में विदेशी कुंजी का उपयोग कैसे किया जा सकता है: InnoDB टेबल विदेशी कुंजी कंस्ट्रेंट जांच का समर्थन करते हैं। दो टेबल को जोड़ने के लिए केवल एक विदेशी कुंजी कंस्ट्रेंट आवश्यक नहीं है। इसका उपयोग स्टोरेज इंजन के अलावा InnoDB के लिए उपयोग किए जाने वाले कॉलम को परिभाषित करते समय