Mysql
 sql >> Database >  >> RDS >> Mysql

Codice di errore MySQL 1452 Vincolo della chiave esterna

Hai definito un vincolo di chiave esterna su NameID colonna cioè nella tabella PHONE usando inserisci per tabella del telefono hai passato il valore predefinito contro NameID, ma NameID punta a NAME tabella e si aspetta di avere l'ID del record inserito da NAME tabella non ha un valore predefinito come da documenti

Quindi il tuo secondo inserto può utilizzare l'inserito se da NAME tabella come

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

E puoi ottenere risultati da entrambe le tabelle unendoti a loro

select * from NAME
JOIN PHONE 
USING (NameID)

Come ottenere l'ID univoco per il Ultima riga inserita

Guarda la demo di violino