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 :

probleme foreign key avec clé composée


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 14
    Points : 10
    Points
    10
    Par défaut probleme foreign key avec clé composée
    Bonjour,
    J'ai le système suivant :
    une table rubrique (PK : rub_id qui a déja une foreign key sur une table catégorie) qui est reliée à des fiches rubriques annuelles (PK:rub_id, frub_annee) et j'ai des sous-rubrique qui sont reliées aux fiches rubriques (PK : srub_id ).
    Je voudrais créer des clés étrangères entre ces tables mais je n'y arrive pas, ni avec phpmyadmin ni avec des commandes alter table. Sous phpmyadmin il me dit aucune clé définie et avec la commande alter table il me dit qu'il n'arrive pas à créer le fichier FRM correspondant.
    Je vous donne le code des différentes tables. Si quelqu'un a une idée de l'origine du blocage cela m'aiderai beaucoup.
    Merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    CREATE TABLE `rubrique` (
      `rub_id` tinyint(3) unsigned NOT NULL auto_increment,
      `cat_id` tinyint(3) unsigned NOT NULL default '0',
      `rub_titre` varchar(80) NOT NULL default '',
      `rub_ordre` tinyint(3) unsigned NOT NULL default '1',
      `rub_publie` enum('OUI','NON') NOT NULL default 'NON',
      PRIMARY KEY  (`rub_id`),
      KEY `rub_ordre` (`rub_ordre`),
      KEY `cat_id` (`cat_id`),
      KEY `rub_publie` (`rub_publie`)
    ) TYPE=InnoDB;
     
    ALTER TABLE `rubrique`
      ADD CONSTRAINT `rubrique_ibfk_1` FOREIGN KEY (`cat_id`) REFERENCES `categorie` (`cat_id`) ON UPDATE CASCADE;
     
     
    CREATE TABLE `fiche_rubrique` (
      `rub_id` tinyint(4) NOT NULL default '0',
      `frub_annee` smallint(6) NOT NULL default '0',
      `frub_texte` text NOT NULL,
      `frub_visuel` varchar(60) default NULL,
      `frub_copyright` varchar(50) default NULL,
      `frub_legende` varchar(40) default NULL,
      `frub_publie` enum('OUI','NON') NOT NULL default 'NON',
      PRIMARY KEY  (`rub_id`,`frub_annee`),
      KEY `frub_publie` (`frub_publie`)
    ) TYPE=InnoDB;
     
    CREATE TABLE `sous_rubrique` (
      `srub_id` tinyint(3) unsigned NOT NULL auto_increment,
      `rub_id` tinyint(3) unsigned NOT NULL default '0',
      `rub_annee` smallint(6) NOT NULL default '0',
      `srub_titre` varchar(100) NOT NULL default '',
      `srub_sous_titre` varchar(60) default NULL,
      `srub_texte` text NOT NULL,
      `srub_visuel` varchar(50) default NULL,
      `srub_copyright` varchar(60) default NULL,
      `srub_legende` varchar(60) default NULL,
      `srub_ordre` tinyint(4) NOT NULL default '0',
      `srub_publie` enum('OUI','NON') NOT NULL default 'NON',
      PRIMARY KEY  (`srub_id`),
      KEY `srub_ordre` (`srub_ordre`),
      KEY `srub_publie` (`srub_publie`),
      KEY `rub_id` (`rub_id`,`rub_annee`)
    ) TYPE=InnoDB;

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    Ta table categorie n'existe pas ! (ou alors tu ne donnes pas son code de création).

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    je n'ai pas donné le code de la table catégorie car la création de ma foreign key n'a pas posé de problème et qu'elle n'entre pas en ligne de compte dans mon problème.

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 919
    Points : 6 035
    Points
    6 035
    Par défaut
    La FK visée doit avoir exactement le même type que la colonne sur laquelle on la déclare...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TABLE `rubrique` (
    `rub_id` tinyint(3)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TABLE `fiche_rubrique` (
    `rub_id` tinyint(4) NOT NULL default '0',
    Au moins si une FK est à créer sur/pour cette colonne.

    Ce serait bien de poster les commandes ALTER qui posent pb.

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

Discussions similaires

  1. Probleme de cache avec le composant dhtmlxDataProcessor
    Par vinou94400 dans le forum Général Java
    Réponses: 0
    Dernier message: 11/04/2010, 17h50
  2. Problème foreign key avec hibernate
    Par souhait dans le forum Hibernate
    Réponses: 5
    Dernier message: 05/09/2008, 15h23
  3. Foreign Key avec "filtre données"
    Par plalm dans le forum Oracle
    Réponses: 0
    Dernier message: 01/05/2008, 09h11
  4. Foreign Key avec MySQL / phpMyAdmin ?
    Par Tchupacabra dans le forum Outils
    Réponses: 4
    Dernier message: 13/12/2006, 15h59
  5. Réponses: 12
    Dernier message: 26/03/2006, 14h13

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