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 :

Erreur MySQL #1005


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Par défaut Erreur MySQL #1005
    Bonjour, je rencontre une erreur sous MySQL sur la création de tables.
    J'ai fait quelques recherches sur le sujet dans la matinée. Les solutions proposées à chaque fois sont de mettre un index ou de vérifier les types des variables.
    L'index était déjà déclaré au moment de l'erreur, et les types sont identiques.
    Je vous mets les 2 tables concernées et l'ALTER d'où provient l'erreur.

    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
    -- =============================================================
    -- INTENTION GROUP
    -- =============================================================
    CREATE TABLE IntentionGroup (
      idIntentionGroup INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      idScenario INTEGER UNSIGNED NOT NULL,
      comment VARCHAR(255) NULL,
    	rankIG INTEGER NOT NULL,
      PRIMARY KEY(idIntentionGroup),
      INDEX IntentionGroup_FKIndex1(idScenario)
    )
    TYPE=InnoDB;
     
    -- =============================================================
    -- STRATEGY
    -- =============================================================
    CREATE TABLE Strategy (
      idStrategy INTEGER UNSIGNED NOT NULL,
      title VARCHAR(255) NOT NULL,
      comment VARCHAR(255) NULL,
      idIntentionGroup INTEGER NULL,
      strategyCategory VARCHAR(255) NOT NULL,
      strategyType VARCHAR(255) NOT NULL,
      PRIMARY KEY(idStrategy),
      INDEX Strategy_FKIndex1(strategyType),
      INDEX Strategy_FKIndex2(strategyCategory),
      INDEX Strategy_FKIndex3(idIntentionGroup)
    )
    TYPE=InnoDB;
     
    -- ========================================================
    -- STRATEGY
    -- ========================================================
    -- Les autres ALTER sont présents mais je ne les ai pas copié
    ALTER TABLE Strategy
    	ADD FOREIGN KEY(idIntentionGroup)
    	REFERENCES IntentionGroup(idIntentionGroup)
    		ON DELETE NO ACTION
    		ON UPDATE NO ACTION;
    Le message d'erreur étant celui-ci:
    Erreur

    requête SQL:

    ALTER TABLE Strategy ADD FOREIGN KEY ( idIntentionGroup ) REFERENCES IntentionGroup( idIntentionGroup ) ON DELETE NO ACTION ON UPDATE NO ACTION ;

    MySQL a répondu: Documentation
    #1005 - Can't create table '.\scenedit\#sql-c58_b9.frm' (errno: 150)
    Si vous voyez quelque chose dites le moi, je sèche dessus depuis une bonne heure et demie en faisant pas mal de test et de recherche sur ce problème.

    En vous remerciant d'avance.

    Al

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    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 932
    Par défaut
    Le type n'est pas le même : l'un est UNSIGNED et pas l'autre...

    Cf. http://dev.mysql.com/doc/refman/5.0/...nstraints.html

  3. #3
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Par défaut
    Merci bien, il me semblait pourtant qu'avant cette définition n'était pas faite mais que ça marchait (c'est suite à une mise à jour de la base que j'ai eu cette erreur). J'avais du le supprimer probablement.

    Merci de cette réponse rapide.
    Bonne journée

  4. #4
    Membre régulier

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 10
    Par défaut Erreur déclaration étrangère
    @Al Azureus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE Strategy (
      idStrategy INTEGER UNSIGNED NOT NULL,
      title VARCHAR(255) NOT NULL,
      comment VARCHAR(255) NULL,
      idIntentionGroup INTEGER NULL,
      strategyCategory VARCHAR(255) NOT NULL,
      strategyType VARCHAR(255) NOT NULL,
      PRIMARY KEY(idStrategy),
      INDEX Strategy_FKIndex1(strategyType),
      INDEX Strategy_FKIndex2(strategyCategory),
      INDEX Strategy_FKIndex3(idIntentionGroup)
    )
    TYPE=InnoDB;
    La déclaration ci-dessus est erronée car vous déclarez ;
    1. une clé étrangère comme pouvant être nulle
    2. ON DELETE : no action et ON UPDATE : NO ACTION : vous ne pouvez pas supprimer les enregistrements de la table maître alors qu'ils constituent la clé étrangère de la table Strategy ! Vous vous retrouveriez alors avec des enregistrements orphelins

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

Discussions similaires

  1. Erreur Mysql 1005
    Par moon51 dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/05/2008, 19h44
  2. erreur mysql Unknown column...
    Par italiasky dans le forum Requêtes
    Réponses: 9
    Dernier message: 08/02/2006, 10h26
  3. erreur mysql... probleme de requete
    Par om.rava dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/12/2005, 21h48
  4. avoir les log d'erreur mysql
    Par simoryl dans le forum Administration
    Réponses: 4
    Dernier message: 06/09/2005, 14h24

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