Mysql
 sql >> Base de données >  >> RDS >> Mysql

Code d'erreur MySQL 1452 Contrainte de clé étrangère

Vous avez défini une contrainte de clé étrangère sur NameID colonne c'est-à-dire dans la table PHONE en utilisant insert pour la table de téléphone, vous avez passé par défaut contre NameID, mais NameID pointe vers NAME table et s'attendant à avoir l'ID d'enregistrement inséré de NAME table, il n'a pas de valeur par défaut selon les docs

Ainsi, votre deuxième insert peut utiliser l'insertion si de NAME tableau comme

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

Et vous pouvez récupérer les résultats des deux tables en les joignant

select * from NAME
JOIN PHONE 
USING (NameID)

Comment obtenir l'identifiant unique pour le Dernière ligne insérée

Voir la démo du violon