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

ERREUR 1452 (23000) :Impossible d'ajouter ou de mettre à jour une ligne enfant :une contrainte de clé étrangère échoue

La raison pour laquelle vous obtenez cette exception est que vous insérez un enregistrement dans la table test_usershosts dont la valeur du userID n'est pas présent sur la table test_users . Identique à la valeur de hid n'est pas également présent sur la table test_hosts .

Tableau test_usershosts dépend des tables :test_users et test_hosts . Assurez-vous donc que lors de l'insertion d'enregistrements sur la table test_usershosts , les valeurs de hid et userid existe déjà sur les tables parent :test_users et test_hosts .

Essayez d'exécuter cette requête et elle sera sûrement insérée.

INSERT INTO test_usershosts (RID,userid,hid,Usr,Pass) 
VALUES (NULL,1120,30,'user','pass');

Je vois que AUTO_INCREMENT option sur les tables :test_users et test_hosts , ne sont pas nécessaires puisque vous fournissez des valeurs sur chaque requête que vous exécutez sur les deux tables.