sql >> Base de Datos >  >> RDS >> Mysql

Código de error de MySQL 1452 Restricción de clave externa

Ha definido una restricción de clave externa en NameID columna, es decir, en la tabla PHONE al usar la inserción para la tabla de teléfonos, ha pasado el valor predeterminado contra NameID, pero NameID apunta a NAME tabla y esperando tener la identificación de registro insertada de NAME table no tiene un valor predeterminado según los documentos

Entonces, su segundo inserto puede usar el inserto si de NAME tabla como

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

Y puede obtener resultados de ambas tablas uniéndolas

select * from NAME
JOIN PHONE 
USING (NameID)

Cómo obtener la ID única para el Última fila insertada

Ver demostración de fiddle