Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1186 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  ERROR 1216: Cannot add or update a child row: a foreign key constraint

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ERROR 1216: Cannot add or update a child row: a foreign key constraint

n°1657477
lasvegasth​eking
Posté le 12-12-2007 à 23:29:48  profilanswer
 

Bonsoir,
 
j'ai l'erreur qui est dans le titre mais je ne comprends pas trop pourquoi et comment la corriger.
Au départ la table tDestination est vide

Code :
  1. mysql> select * from tDestination;
  2. Empty set (0.00 sec)


Ensuite, je teste la requete qui servira à remplir la table tDestination  

Code :
  1. mysql> SELECT tTable.table_i_id, car_e_country, count(*)
  2.     -> FROM tCard NATURAL JOIN tTable NATURAL JOIN tUser
  3.     -> WHERE use_ee_actions LIKE '%stat%'
  4.     -> GROUP BY car_e_country;


Le résultat de cette requete donne :

Code :
  1. +----------------+---------------+----------+
  2. | table_i_id       | car_e_country | count(*) |
  3. +----------------+---------------+----------+
  4. | 21168589893714 | France        |       17 |
  5. | 10142247654561 | Italie        |       13 |
  6. +----------------+---------------+----------+
  7. 2 rows in set (0.00 sec)


Maitenant, je remplit la table tDestination mais là, ça coince ...  

Code :
  1. mysql> REPLACE INTO tDestination(sta_i_id, des_e_country, des_i_nb)
  2.     -> SELECT tTable.table_i_id, car_e_country, count(*)
  3.     -> FROM tCard NATURAL JOIN tTable NATURAL JOIN tUser
  4.     -> WHERE use_ee_actions LIKE '%stat%'
  5.     -> GROUP BY car_e_country;
  6. ERROR 1216: Cannot add or update a child row: a foreign key constraint fails
  7. mysql>


Le champ sta_i_id de la table tDestination est une clé étrangère d'une table nommé tStat.
 
Comment corriger cela ? J'essayes depuis cet après-midi, sans succès.
 
Merci

mood
Publicité
Posté le 12-12-2007 à 23:29:48  profilanswer
 

n°1657502
olivthill
Posté le 13-12-2007 à 07:34:30  profilanswer
 

Essayer

group by tTable.table_i_id, car_e_country

car normalement un group by doit inclure toutes les colonnes sauf le count(*), ou bien ne sélectionner pas tTable.table_i_id.
Il est possible qu'il y ait aussi des problèmes.

n°1658316
MagicBuzz
Posté le 14-12-2007 à 14:06:01  profilanswer
 

+1 avec olivthill, même si c'est pas ce que dit la norme
 
mais sinon, je vois pas le rapport avec le message d'erreur :heink:
 
sinon, évite les NATURAL JOIN. C'est sympa à taper car prévu pour les fénéants, mais le jour où tu rajoute une seconde FK entre les table, le NATURAL va planter ou faire n'importe quoi. Passe par un INNER et des critères de jointure explicites (mais ça changera rien à l'erreur)


Message édité par MagicBuzz le 14-12-2007 à 14:06:16

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  ERROR 1216: Cannot add or update a child row: a foreign key constraint

 

Sujets relatifs
[PHP] Erreur: Cannot use a scalar value as an arrayProbléme Vb error '429'
[Resolu] UPDATE - Pb avec chaine de type '&chaine'FaTaL eRrOr... tit coup de main svp
500 internal server error sur formMailFatal error: Cannot redeclare function
Connaitre l'état d'un UPDATEUpdate des valeurs cachées dans un GridView
[Résolu] Parse error 
Plus de sujets relatifs à : ERROR 1216: Cannot add or update a child row: a foreign key constraint


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR