Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Código de erro MySQL 1452 restrição de chave estrangeira


Você definiu uma restrição de chave estrangeira em NameID coluna, ou seja, na tabela PHONE usando insert for phone table você passou o padrão contra NameID, mas NameID está apontando para NAME table e esperando ter o ID do registro inserido de NAME table não tem um valor padrão conforme os documentos

Portanto, sua segunda inserção pode usar o if inserido de NAME mesa como
INSERT INTO NAME (NameID, NAME) VALUES (DEFAULT, 'John Doe');
INSERT INTO PHONE (NameID, PhoneNumber, NumType) VALUES (LAST_INSERT_ID(), '706-782-4719', 'Home');

E você pode obter resultados de ambas as tabelas juntando-as
select * from NAME
JOIN PHONE 
USING (NameID)

Como obter o ID exclusivo para o Última linha inserida

Ver demonstração do violino