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 :

[MySQL 5.5] Erreur à la création de tables


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut [MySQL 5.5] Erreur à la création de tables
    Bonjour,

    J'ai utilisé MySQL Workbench pour créer un schéma en générant un fichier script SQL, mais cela se passe mal à l'exécution.

    Voici en partie le fichier créé :
    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
     
    -- MySQL Script generated by MySQL Workbench
    -- 11/17/14 16:18:38
    -- Model: New Model    Version: 1.0
    SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
    SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
    SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
     
    -- -----------------------------------------------------
    -- Schema Champ1
    -- -----------------------------------------------------
    -- Première esquisse 
    DROP SCHEMA IF EXISTS `Champ1` ;
    CREATE SCHEMA IF NOT EXISTS `Champ1` DEFAULT CHARACTER SET macce ;
    USE `Champ1` ;
     
    -- -----------------------------------------------------
    -- Table `Champ1`.`Championnat`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `Champ1`.`Championnat` (
      `idChamp` INT NOT NULL,
      `lbchamp` VARCHAR(45) NOT NULL,
      `lbsaison` VARCHAR(45) NOT NULL,
      PRIMARY KEY (`idChamp`))
    ENGINE = InnoDB;
     
     
    -- -----------------------------------------------------
    -- Table `Champ1`.`Equipe`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `Champ1`.`Equipe` (
      `idequipe` INT NOT NULL,
      `lbequipe` VARCHAR(45) NOT NULL,
      `idchamp` INT NOT NULL,
      PRIMARY KEY (`idequipe`),
      CONSTRAINT `idchamp`
        FOREIGN KEY ()
        REFERENCES `Champ1`.`Championnat` ()
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB;
    La première table Championnat est créée sans problème.
    C'est à la table Equipe (ligne 30) que cela se passe mal, MySQL m'insulte :
    ERROR 1064 (42000) at line 30: You have an error in your SQL syntax; check the m
    anual that corresponds to your MySQL server version for the right syntax to use
    near ')
    REFERENCES `Champ1`.`Championnat` ()
    ON DELETE NO ACTION,
    ON UPDAT' at line 7
    Quelqu'un pourrait-il me dire quelle erreur je devrais corriger ? Sachant qu'un autre table est en préparation après... et que je ne connais qu'assez peu MySQL...

    Merci par avance de votre aide.

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Une FOREIGN KEY qui ne référence aucune colonne, ça ne vous semble pas bizarre ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut
    Bonsoir, merci pour votre réponse.

    Devrais-je alors écrire cela : FOREIGN KEY (`idChamp`), donc ajouter un champ dans les parenthèses ?

    Je rappelle que le script a été créé par MySQL Workbech parce que je ne sais pas le faire directement...

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    C'est sûrement que votre schéma dans MySQL Workbench définit mal la clé étrangère.

    Avec ce code, ça devrait aller mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CONSTRAINT `idchamp`
        FOREIGN KEY (le_nom_que_vous_voulez_pour_la_cle_etrangere)
        REFERENCES `Champ1`.`Championnat` (idChamp)
    Dans MySQL Workbench, allez à l'onglet Foreign Keys et sélectionnez la colonne idChamp dans la partie Index Columns. Regénérez votre code et ça devrait donner à peu près ce que j'ai écrit plus haut.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut


    C'était bien cela : j'avais tout simplement oublié sous Workbench de préciser la colonne cible... Bête omission de ma part.

    Un grand merci à vous pour votre aide, le fichier généré est cette fois-ci passé sans encombre !

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

Discussions similaires

  1. Erreur 1075 création de table
    Par Kreepz dans le forum Débuter
    Réponses: 3
    Dernier message: 16/12/2014, 12h04
  2. [LibreOffice][Base de données] Message d'erreur sur Création de table
    Par Malick dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 05/03/2014, 19h58
  3. Erreur de création de table
    Par marsupilami34 dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/02/2008, 18h43
  4. Erreur sur Création de Table
    Par lailai dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/12/2007, 16h59

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