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 :

requête pour supprimer une clé a la fois primaire dans une table et étrangère dans une autre


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Points : 21
    Points
    21
    Par défaut requête pour supprimer une clé a la fois primaire dans une table et étrangère dans une autre
    Bonjour ,
    J'ai les 2 tables suivantes :

    tranche: qui contient les colonnes numerotranche et libelletranche
    compte: qui contient numerocompte , numerotranche

    J'ai les données suivantes dans les 2 tables : (TR1,libelle1) (n1,TR1)

    Sachant que le numero tranche est clé primaire dans tranche et étrangère dans l'autre, je veux supprimer les lignes qui contiennent TR1 dans la base de données, par exemple les 2 données que j'ai mises auparavant.

    J'utilise tout d'abord la requête pour supprimer TR1 quand elle appartient à tranche par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alter table tranche
    delete numerotranche where numerotranche='TR1'
    Mais il me sort l'erreur suivante :

    cannot delete or update a parent row a foreign key restreint fails
    qui signifie littéralement qu'on ne doit pas la toucher car elle est aussi clé etrangère.

    Donc, j'aimerais vous demander si je peux, avec une seule requête, remédier à ce problème.

    merci

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 217
    Points : 28 189
    Points
    28 189
    Par défaut
    Touy dépend de la contrainte que tu as mise lors de la création de la clé étrangère. Si tu as mis une contrainte de suppression en cascade, alors de supprimer la ligne référencée dans une table supprimera aussi automatiquement les lignes là référençant dans les autres tables.

    Si tu n'as mis aucune contrainte, effectivement tu ne peux pas supprimer une ligne tant qu'elle est encore référencée dans une autre table.
    Il te faudra d'abord supprimer les lignes la référençant dans les autres tables, avant de pouvoir supprimer cette ligne là.

    Par contre, je ne comprends pas l'utilité de ton alter table tranche ici !

Discussions similaires

  1. Requête pour supprimer une liste d'élèves
    Par 94340DB dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/04/2013, 11h56
  2. requête pour supprimer les doublons
    Par omar01 dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/11/2012, 09h32
  3. Requête pour supprimer caractères spéciaux dans des champs
    Par Laureoz dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/02/2012, 16h58
  4. Requête pour supprimer les doublons
    Par chouchouilloux dans le forum SQL
    Réponses: 2
    Dernier message: 11/06/2010, 11h46
  5. Requête pour supprimer des doublons dans une table
    Par nomade333 dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/03/2008, 12h48

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