Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cannot add or update a child row

    4 janvier 2024 à 21:15:21

    Bonjour,

    Je me permets de poster car je ne comprends pas mon erreur :

    Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`db_eglise`.`Eglise`, CONSTRAINT `fk_Eglise_villes_france1` FOREIGN KEY (`idx_ville`) REFERENCES `villes_france` (`ville_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

    Pourtant je n'ai qu'une seule clé primaire dans ma table mere qui pointe sur une clé étrangère. j'ai vidé les tables mais rien à faire j'ai toujours ce probleme.

    table mere:

    CREATE TABLE `villes_france` (
      `ville_id` mediumint(8) unsigned NOT NULL,
      `ville_departement` varchar(3) DEFAULT NULL,
      `ville_slug` varchar(255) DEFAULT NULL,
      `ville_nom` varchar(45) NOT NULL,
      `ville_nom_simple` varchar(45) DEFAULT NULL,
      `ville_nom_reel` varchar(45) DEFAULT NULL,
      `ville_nom_soundex` varchar(20) DEFAULT NULL,
      `ville_nom_metaphone` varchar(22) DEFAULT NULL,
      `ville_code_postal` varchar(255) DEFAULT NULL,
      `ville_commune` varchar(3) DEFAULT NULL,
      `ville_code_commune` varchar(5) NOT NULL,
      `ville_arrondissement` smallint(3) unsigned DEFAULT NULL,
      `ville_canton` varchar(4) DEFAULT NULL,
      `ville_amdi` smallint(5) unsigned DEFAULT NULL,
      `ville_population_2010` mediumint(11) unsigned DEFAULT NULL,
      `ville_population_1999` mediumint(11) unsigned DEFAULT NULL,
      `ville_population_2012` mediumint(10) unsigned DEFAULT NULL COMMENT 'approximatif',
      `ville_densite_2010` int(11) DEFAULT NULL,
      `ville_surface` float DEFAULT NULL,
      `ville_longitude_deg` float DEFAULT NULL,
      `ville_latitude_deg` float DEFAULT NULL,
      `ville_longitude_grd` varchar(9) DEFAULT NULL,
      `ville_latitude_grd` varchar(8) DEFAULT NULL,
      `ville_longitude_dms` varchar(9) DEFAULT NULL,
      `ville_latitude_dms` varchar(8) DEFAULT NULL,
      `ville_zmin` mediumint(4) DEFAULT NULL,
      `ville_zmax` mediumint(4) DEFAULT NULL,
      PRIMARY KEY (`ville_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

    table enfant:

    CREATE TABLE `Eglise` (
      `idEglise` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `NomEglise` varchar(45) NOT NULL,
      `adresse` varchar(255) NOT NULL,
      `codePostal` varchar(10) NOT NULL,
      `telephone` varchar(15) DEFAULT NULL,
      `portable` varchar(15) NOT NULL,
      `site` varchar(255) DEFAULT NULL,
      `token` int(11) NOT NULL,
      `mail` varchar(255) NOT NULL,
      `idx_ville` mediumint(8) unsigned NOT NULL,
      PRIMARY KEY (`idEglise`),
      KEY `fk_Eglise_villes_france1_idx` (`idx_ville`),
      CONSTRAINT `fk_Eglise_villes_france1` FOREIGN KEY (`idx_ville`) REFERENCES `villes_france` (`ville_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
    ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

    Mercin d'avance pour votre aide.


    • Partager sur Facebook
    • Partager sur Twitter
      4 janvier 2024 à 21:40:14

      Bonjour,

      Pouvez-vous renvoyer le résultat de cette requête

      SELECT e.idx_ville
      FROM Eglise e
      LEFT JOIN villes_france vf ON e.idx_ville = vf.ville_id
      WHERE vf.ville_id IS NULL;
      

      Cette requête identifiera toutes les valeurs de idx_ville dans Eglise qui n'ont pas de correspondances dans villes_france.

      P.S : Si vous essayez d'ajouter ou de mettre à jour une ligne dans Eglise avec un idx_ville qui n'existe pas dans villes_france, l'erreur 1452 se produira. Vérifiez si les valeurs de idx_ville que vous insérez existent réellement dans villes_france

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        4 janvier 2024 à 22:08:44

        Bonjour le retour de la requête ne remonte aucun résultat.

        Il y a bien des enregistrements dans la table villes_france.

        • Partager sur Facebook
        • Partager sur Twitter
          4 janvier 2024 à 22:50:49

          Peux-tu envoyer ta requête d'insertion ?
          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

          Cannot add or update a child row

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown