#1452 Erreur MySQL

Résolu/Fermé
Pinigseu - 16 oct. 2017 à 07:52
Pinigseu Messages postés 5 Date d'inscription lundi 16 octobre 2017 Statut Membre Dernière intervention 25 avril 2019 - 16 oct. 2017 à 10:29
Bonjour j'aurais besoin d'aide concernant une clé étrangère que j'essaye d'insérer dans ma base de donnée.
Avec une table clients et une table abonnements, j'essaye de faire une clé étrangère avec code_client (de la table abonnements) avec id_clients (qui est la clé primaire de la table clients)
Pour faire ma clé étrangère j'utilise la commande suivante :

ALTER TABLE abonnements
ADD INDEX(code_client),
ADD FOREIGN KEY (code_client) REFERENCES clients (id_clients) ;

Le problème, c'est qu'il me met l'erreur suivante :
#1452 - Cannot add or update a child row: a foreign key constraint fails (`btssio`.`#sql-16a8_21b`, CONSTRAINT `#sql-16a8_21b_ibfk_1` FOREIGN KEY (`code_client`) REFERENCES `clients` (`id_clients`))

ça fait des jours que je cherche des solutions mais rien ne fonctionne. je suis débutant dans la matière et c'est un devoir que j'ai à rendre bientôt...
Merci d'avance pour votre aide,
Cordialement.
A voir également:

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
16 oct. 2017 à 09:24
Bonjour,

Commence par nous montrer la structure de ta table via un SHOW CREATE ou en en faisant un DUMP que tu nous posteras ici.

0
Pinigseu Messages postés 5 Date d'inscription lundi 16 octobre 2017 Statut Membre Dernière intervention 25 avril 2019
Modifié le 16 oct. 2017 à 09:32
Bonjour, j'ai réussis sans erreur en utilisant ma clé primaire id au lieu de code_ client je vous envois le DUMB parce que je ne comprends pas pourquoi ça fonctionne avec lui et pas l'autre :

 -- phpMyAdmin SQL Dump

-- version 4.7.4
-- https://www.phpmyadmin.net/
-- Hôte : 127.0.0.1:3306
-- Généré le : lun. 16 oct. 2017 à 07:09
-- Version du serveur : 5.7.19
-- Version de PHP : 5.6.31

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
16 oct. 2017 à 09:53
Déjà... je ne vois aucun champ dans tes tables qui se nomme "code_client" ....
0
Pinigseu Messages postés 5 Date d'inscription lundi 16 octobre 2017 Statut Membre Dernière intervention 25 avril 2019
16 oct. 2017 à 10:02
Ah oui en effet je l'ai supprimé tout à l'heure autant pour moi
le code_client était un TINYINT(50).

Mais je pense avoir ciblé le problème quand j'ai peuplé ce champ ils étaient tous en 0 c'est à dire que je pensais que la étrangère allait faire le liens tout seul (je crois au père noël surement xD) on appel ça donnée morte si mes recherches sont exacts est-ce que c'est ça qui aurait pu poser problème ?

Cordialement
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > Pinigseu Messages postés 5 Date d'inscription lundi 16 octobre 2017 Statut Membre Dernière intervention 25 avril 2019
16 oct. 2017 à 10:27
oui
0
Pinigseu Messages postés 5 Date d'inscription lundi 16 octobre 2017 Statut Membre Dernière intervention 25 avril 2019
16 oct. 2017 à 10:29
D'accord merci beaucoup !
0