Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Fehlercode 1452 Fremdschlüsseleinschränkung

Sie haben eine Fremdschlüsseleinschränkung für NameID definiert Spalte d.h. in der Tabelle PHONE Mit Einfügen für die Telefontabelle haben Sie den Standardwert für NameID übergeben, aber NameID zeigt auf NAME Tabelle und erwartet die eingefügte Datensatz-ID von NAME Tabelle hat keinen Standardwert gemäß der Dokumentation

Ihre zweite Einfügung kann also das eingefügte if von NAME verwenden Tabelle wie

INSERT INTO NAME (NameID, NAME) VALUES (DEFAULT, 'John Doe');
INSERT INTO PHONE (NameID, PhoneNumber, NumType) VALUES (LAST_INSERT_ID(), '706-782-4719', 'Home');

Und Sie können Ergebnisse aus beiden Tabellen abrufen, indem Sie sich ihnen anschließen

select * from NAME
JOIN PHONE 
USING (NameID)

So erhalten Sie die eindeutige ID für die Letzte eingefügte Zeile

Siehe Fiddle-Demo