IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

[INNODB] Impossible de modifier une valeur dans une table à cause de clés étrangères


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut [INNODB] Impossible de modifier une valeur dans une table à cause de clés étrangères
    Bonjour,

    J'ai un gros problème.

    Dans une table, j'ai voulu modifier un champ, j'ai mis "34" là où se trouvait "0".

    Jusque-là, pas de problème...

    Ensuite, je veux remettre "0" à la place de ce "34" car je me suis rendu compte que j'ai fait une bêtise mais impossible de modifier ce que je souhaite...

    Ils m'écrivent l'erreur suivante :

    MySQL a répondu:

    #1451 - Cannot delete or update a parent row: a foreign key constraint fails (`annonces/annonceurs`, CONSTRAINT `annonceurs_ibfk_1` FOREIGN KEY (`grp`) REFERENCES `edit` (`groupement`))
    Je me suis dit qu'il fallait enlever l'index grp dans annonceurs mais une autre erreur arrive ensuite pour une autre table...
    J'enlève aussi l'index et la première erreur revient, argh...

    Y a-t-il un moyen pour régler ce problème svp ???

    C'est pourtant un simple update qu'il me faudrait mais je n'y arrive pas car les tables sont en innodb... et toutes les tables sont en relations avec ces clés étrangères...

    Sachant que le programme, ce n'est pas moi qui l'ai fait et que je me trouve avec 400 tables...

    Que faire svp ??? Supprimer des index ? j'ai peur de faire planter le programme par la suite...

    Apparemment, j'ai une contrainte qui est dans cette table car quand j'exporte, à la fin, ils m'écrivent :

    --
    -- Contraintes pour la table `annonceurs`
    --
    ALTER TABLE `annonceurs`
    ADD CONSTRAINT `annonceurs_ibfk_1` FOREIGN KEY (`grp`) REFERENCES `edit` (`groupement`);

    Comment supprimer cette contrainte et la remettre ensuite svp ?, je ne la trouve pas...

    Est-ce que ça ne craint pas par rapport au programme si je modifie ça svp ?

    Avez-vous une idée ???

    Merci d'avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    Bonjour,

    Ce comportement du SGBD est tout à fait normal.

    Un SGBD ne sert pas principalement a stocker des données, mais a conserver l'intégrité de celles-ci, et la il te refuse d'entrer une valeur qui lui semble être incohérent avec le reste des données.

    Peut-on avoir les requêtes de création de la base de donnée et la requête qui t'est refusé ainsi que les occurrences déjà présentes ?

    Il ne faut pas voir ces contraintes négatives, elles sont très très utiles et servent souvent a alléger le code

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [Débutant] Impossible d'afficher les valeurs d'une requête dans une combobox
    Par Jah73 dans le forum ASP.NET
    Réponses: 31
    Dernier message: 18/07/2013, 09h43
  3. [Débutant] Impossible d'afficher les valeurs d'une requête dans une combobox
    Par Jah73 dans le forum VB.NET
    Réponses: 6
    Dernier message: 14/06/2013, 19h08
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 1
    Dernier message: 25/09/2006, 17h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo