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 :

Gestion clé etrangere


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Points : 76
    Points
    76
    Par défaut Gestion clé etrangere
    Bonjour tout le monde,
    J'ai crée une table INNODB tableC qui contient deux champs:
    id_tableA et id_tableB.
    Ces deux champs sont en meme temps clés primaires et les clés étrangères référencent successivement les tables: tableA et tableB.
    Le problème c'est quand je supprime un enregistrement de tableA qui existe dans tableC ça garde la ligne dans cette derniere.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE IF NOT EXISTS `tableC` (
      `id_tableA` int(11) NOT NULL,
      `id_tableB` int(11) NOT NULL,
      PRIMARY KEY (`id_tableA`,`id_tableB`),
      CONSTRAINT `FK_id_A` FOREIGN KEY (`id_tableA`) REFERENCES `tableA` (`id_A`) ON DELETE SET NULL ON UPDATE CASCADE,
      CONSTRAINT `FK_id_B` FOREIGN KEY (`id_tableB`) REFERENCES `tableB` (`id_B`) ON DELETE SET NULL ON UPDATE CASCADE
    );

  2. #2
    Membre confirmé
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 453
    Points
    453
    Par défaut
    Bonjour,

    ca ne serait pas plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE IF NOT EXISTS `tableC` (
      `id_tableA` int(11) NOT NULL,
      `id_tableB` int(11) NOT NULL,
      PRIMARY KEY (`id_tableA`,`id_tableB`),
      CONSTRAINT `FK_id_A` FOREIGN KEY (`id_tableA`) REFERENCES `tableA` (`id_A`) ON DELETE CASCADE ON UPDATE CASCADE,
      CONSTRAINT `FK_id_B` FOREIGN KEY (`id_tableB`) REFERENCES `tableB` (`id_B`) ON DELETE CASCADE ON UPDATE CASCADE
    );
    Keep it simple, stupid !

  3. #3
    Membre régulier Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Points : 76
    Points
    76
    Par défaut
    merci ta resolu mon probleme , apparament j'ai pas bien lu mon cours de mysql

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des cles etrangeres
    Par ninsekh dans le forum VB.NET
    Réponses: 3
    Dernier message: 24/09/2007, 14h18
  2. Réponses: 2
    Dernier message: 31/08/2002, 21h37
  3. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  4. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11
  5. gestion d'un joystick ...
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h53

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