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

 MySQL Discussion :

Création de table impossible


Sujet :

MySQL

  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 18
    Par défaut Création de table impossible
    Bonsoir, j'ai un problème au niveau de la création des deux dernières tables.
    #1005 - Can't create table 'test.t_menu' (errno: 150)
    J'ai déjà regardé un peut partout sur le web mais sa reste sans résultats.

    Merci de votre aide
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    /*********************************/
    CREATE TABLE `t_contenue` (
     
      `id_contenue` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
     
      `contenue` text NOT NULL,
     
      PRIMARY KEY  (`id_contenue`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
     
     
    CREATE TABLE `t_revision` (
      `id_rev` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
      `email` varchar(100) NOT NULL,
      `num_rev` int(10) UNSIGNED NOT NULL,
      `id_contenue` int(10) UNSIGNED NOT NULL,
      `date` datetime NOT NULL,
      PRIMARY KEY  (`id_rev`,`num_rev`),
      FOREIGN KEY (`id_contenue`) REFERENCES `t_contenue` (`id_contenue`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    CREATE TABLE `t_edition`(
      `id_edition` int(10) unsigned NOT NULL auto_increment,
      `nom_edition` text NOT NULL,
      PRIMARY KEY  (`id_edition`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
     
     
    CREATE TABLE `t_groupe` (
      `id_groupe` int(10) unsigned NOT NULL auto_increment,
      `nom_groupe` text NOT NULL,
      PRIMARY KEY  (`id_groupe`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    CREATE TABLE `t_visibilite` (
      `id_visibilite` int(10) unsigned NOT NULL auto_increment,
      `nom_visibilite` text  NOT NULL,
      PRIMARY KEY  (`id_visibilite`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
     
    CREATE TABLE `t_users` (
      `nom` varchar(50)  NOT NULL,
      `prenom` varchar(50) NOT NULL,
      `login` varchar(50) NOT NULL,
      `date` datetime NOT NULL,
      `adresse` varchar(200) NOT NULL,
      `mdp` varchar(50) NOT NULL,
      `email` varchar(100) NOT NULL,
      `idgroup` int(10) unsigned NOT NULL,
      `idstyle` varchar(12) NOT NULL,
      PRIMARY KEY (`email`),
      FOREIGN KEY (`idgroup`) REFERENCES `t_groupe` (`id_groupe`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    CREATE TABLE `t_menu` (
      `id_menu` int(10) NOT NULL auto_increment,
      `id_position` int(11) NOT NULL,
      `titre` text NOT NULL,
      `visible` tinyint(1) NOT NULL,
      `id_contenue` int(10) UNSIGNED NOT NULL,
      `num_rev` int(10) UNSIGNED NOT NULL,
      PRIMARY KEY  (`id_menu`),
      UNIQUE KEY `id_position` (`id_position`),
      FOREIGN KEY (`id_contenue`) REFERENCES `t_revision` (`id_contenue`),
      FOREIGN KEY (`num_rev`) REFERENCES `t_revision` (`num_rev`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    CREATE TABLE `t_lien` (
      `id_lien` int(10) NOT NULL auto_increment,
      `id_position` int(10) NOT NULL,
      `titre` text NOT NULL,
      `visible` tinyint(1) NOT NULL,
      `edit` tinyint(1) NOT NULL,
      `id_contenu` int(10) UNSIGNED NOT NULL,
      `num_rev` int(10) UNSIGNED NOT NULL,
      PRIMARY KEY  (`id_menu`),
      UNIQUE KEY `id_position` (`id_position`),
      FOREIGN KEY (`id_contenue`) REFERENCES `t_revision` (`id_contenue`),
      FOREIGN KEY (`num_rev`) REFERENCES `t_revision` (`num_rev`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 947
    Par défaut
    Un problème classique...
    Les deux tables doivent être de type InnoDB, dans la table, il doit y avoir un INDEX où les clés étrangères sont listées comme première colonne, dans le même ordre, et dans la table référencée, il doit y avoir un INDEX où les colonnes référencées sont listées comme premières colonnes, dans le même ordre. Les préfixes d'index ne sont pas supportés pour les clés de contrainte.

    InnoDB ne crée pas automatiquement les index nécessaires pour les clés étrangères : vous devez ls créer vous-même
    http://dev.mysql.com/doc/refman/5.0/...nstraints.html

    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOREIGN KEY (`num_rev`) REFERENCES `t_revision` (`num_rev`)
    num_rev doit faire l'objet d'un index dans les 2 tables (t_revision et t_menu)
    Idem pour les autres FK.

Discussions similaires

  1. [phpMyAdmin] Création de table impossible
    Par laurentSc dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 04/01/2013, 22h21
  2. Err 3111 Création tables impossibles
    Par fanfan71 dans le forum Sécurité
    Réponses: 4
    Dernier message: 22/07/2008, 12h00
  3. création de table en jsp impossible
    Par midou84 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 07/01/2008, 22h41
  4. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 17h11
  5. Création multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/10/2002, 11h17

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