एरर 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...
समाधान
- पहले पैरेंट टेबल में रिकॉर्ड डालें:
INSERT INTO primaryTable1 VALUES (1, 'ComputerScience'); - फिर चाइल्ड टेबल में:
INSERT INTO ForeignTable VALUES (1, 'John', 1); -- सफल
नियम: फॉरेन की वैल्यू पैरेंट में पहले मौजूद होनी चाहिए।