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

Langage SQL Discussion :

Problème de foreign key sur un DELETE


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut Problème de foreign key sur un DELETE
    Bonjour à tous,

    J'ai un souci très bloquant concernant 3 tables. Deux d'entres elles ont comme Foreign Key la Primary Key de celle qui reste. Cf ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    T1 [
       t1_pk;
    ]
     
    T2[
      t2_pk 
      t2_fk references t1_pk ON DELETE CASCADE ON UPDATE CASDADE;
    ]
     
    T3[
      t3_pk 
      t3_fk references t1_pk ON DELETE CASCADE ON UPDATE CASDADE;
    ]
    Lorsque je fait un delete ou un update sur T1, Le sgbd (sqlite) m'indique une erreur "foreign key mismatch". Pourtant les occurence de T1.t1_pk sont bien dans T2 et T3!

    Avez vous une idée?

    Merci d'avance

  2. #2
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Les tables sont de type InnoDB ?

  3. #3
    Membre averti
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Comment le savoir? Je peux te dire que la gestion des foreign key est activée (possible depuis sqlite3)

  4. #4
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Donc Base de données= SQLITE ?

    Excusez moi, je pensais que votre question concernait MySQL

  5. #5
    Membre averti
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Citation Envoyé par Yanika_bzh Voir le message
    Donc Base de données= SQLITE ?
    Exactement.

  6. #6
    Membre averti
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    J'ai oublié de mentionner quelque chose d'important, les clés primaires de T2 et T3 sont en fait partiellement composées de leur clés étrangères, ce qui modifie le pseudo langage du post inital comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    T2[
      T2_id,
      T2_fk References t1_pk ON DELETE CASCADE ON UPDATE CASDADE,
      PK(T2_id, T2_fk)
    }
     
    T3[
      T3_id,
      T3_fk references t1_pk ON DELETE CASCADE ON UPDATE CASDADE,
      PK(T3_id, T3_fk)
    ]
    Est ce que ça donne d'autres idées?

Discussions similaires

  1. Problème avec foreign keys sur plusieurs colonnes
    Par draghysck dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/10/2009, 14h27
  2. Foreign key sur clé primaire composée
    Par mona dans le forum Oracle
    Réponses: 6
    Dernier message: 13/10/2005, 22h36
  3. Foreign Key sur Mysql
    Par lemagicien dans le forum Outils
    Réponses: 1
    Dernier message: 23/09/2005, 13h39
  4. problème avec Foreign Key [Interbase 7.5] [Delphi 2005]
    Par xenos dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/09/2005, 11h21
  5. [débutant] Aide pour mettre une FOREIGN KEY sur une table
    Par cauldron dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/11/2004, 17h16

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