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 :

Ecriture de script en SQL


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Ecriture de script en SQL
    bonjour!

    j'ai écrit un script SQL avec un éditeur texte et je l'ai enregistré en .sql. le problème c'est que dans la console DOS, lorsque je charge le script, il ne veut pas créer certaines tables...
    je dispose de EasyPHP 1-8 (version la plus récente je pense).
    voici le message d'erreur :" ERROR 1005 <HY000> at line 64: Ne peut creer la table '.\groupe16_db\vehicule.frm' <Errcode: 150> "

    voilà le script utilisé:

    USE groupe16_db;

    DROP TABLE IF EXISTS client_particulier;
    DROP TABLE IF EXISTS client_societe;
    DROP TABLE IF EXISTS conducteur_associe;
    DROP TABLE IF EXISTS conducteur;
    DROP TABLE IF EXISTS contrat;
    DROP TABLE IF EXISTS vehicule;
    DROP TABLE IF EXISTS modele;
    DROP TABLE IF EXISTS categorie;
    DROP TABLE IF EXISTS client;

    CREATE TABLE categorie (id_categorie CHAR(1) NOT NULL, prix_jour DOUBLE NOT NULL, prix_km DOUBLE NOT NULL, PRIMARY KEY (id_categorie)) TYPE=INNODB;

    CREATE TABLE client (id_client INT NOT NULL,
    PRIMARY KEY (id_client)
    )
    TYPE=INNODB;

    CREATE TABLE client_particulier (id_client INT NOT NULL,
    nom VARCHAR(50) NOT NULL,
    prenom VARCHAR(50) NOT NULL,
    adresse VARCHAR(100),
    telephone VARCHAR(15),
    PRIMARY KEY (id_client),
    FOREIGN KEY (id_client) REFERENCES client(id_client)
    )
    TYPE=INNODB;

    CREATE TABLE client_societe (id_client INT NOT NULL,
    nom VARCHAR(50) NOT NULL,
    TVA VARCHAR(20) NOT NULL,
    adresse VARCHAR(100),
    PRIMARY KEY (id_client),
    FOREIGN KEY (id_client) REFERENCES client(id_client)
    )
    TYPE=INNODB;

    CREATE TABLE conducteur (num_permis VARCHAR(15) NOT NULL,
    date DATE,
    nom VARCHAR(50) NOT NULL,
    prenom VARCHAR(50),
    PRIMARY KEY (num_permis)
    )
    TYPE=INNODB;

    CREATE TABLE modele (id_modele VARCHAR(15) NOT NULL,
    marque VARCHAR(15) NOT NULL,
    nb_places INT,
    carburant VARCHAR(7),
    cylindree INT,
    puissance INT,
    id_categorie CHAR(1) NOT NULL,
    PRIMARY KEY (id_modele,marque),
    FOREIGN KEY (id_categorie) REFERENCES categorie(id_categorie)
    )
    TYPE=INNODB;

    CREATE TABLE vehicule (id_vehicule INT NOT NULL,
    annee INT(4),
    id_modele VARCHAR(15) NOT NULL,
    marque VARCHAR(15) NOT NULL,
    plaque VARCHAR(6) NOT NULL,
    PRIMARY KEY (id_vehicule),
    FOREIGN KEY (id_modele) REFERENCES modele(id_modele),
    FOREIGN KEY (marque) REFERENCES modele(marque)
    )
    TYPE=INNODB;

    CREATE TABLE contrat (id_contrat INT NOT NULL,
    id_vehicule INT NOT NULL,
    id_client INT NOT NULL,
    date_debut DATE,
    date_fin DATE,
    kms_debut INT,
    kms_fin INT,
    prix DOUBLE,
    PRIMARY KEY (id_contrat),
    FOREIGN KEY (id_client) REFERENCES client(id_client),
    FOREIGN KEY (id_vehicule) REFERENCES vehicule(id_vehicule)
    )
    TYPE=INNODB;

    CREATE TABLE conducteur_associe (id_contrat INT NOT NULL,
    num_permis VARCHAR(15) NOT NULL,
    PRIMARY KEY (id_contrat,num_permis),
    FOREIGN KEY (id_contrat) REFERENCES contrat(id_contrat),
    FOREIGN KEY (num_permis) REFERENCES conducteur(num_permis)
    )
    TYPE=INNODB;

    LOAD DATA LOCAL INFILE 'categorie.txt' INTO TABLE categorie;
    LOAD DATA LOCAL INFILE 'client.txt' INTO TABLE client;
    LOAD DATA LOCAL INFILE 'client_particulier.txt' INTO TABLE client_particulier;
    LOAD DATA LOCAL INFILE 'client_societe.txt' INTO TABLE client_societe;
    LOAD DATA LOCAL INFILE 'conducteur.txt' INTO TABLE conducteur;
    LOAD DATA LOCAL INFILE 'conducteur_associe.txt' INTO TABLE conducteur_associe;
    LOAD DATA LOCAL INFILE 'contrat.txt' INTO TABLE contrat;
    LOAD DATA LOCAL INFILE 'modele.txt' INTO TABLE modele;
    LOAD DATA LOCAL INFILE 'vehicule.txt' INTO TABLE vehicule;

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    bonjour,
    Je pense que ton problème vient de ton script de création de la table véhicule dont 2 champs sont foreign key de la table modele, tel que tu l'as écrit en fait le champ id_modele est foreign key de la clé primaire de modele id_modele et le champ marque est foreigne key d'une autre clé primaire d'une autre table. Essaie la syntaxe suivante, mais je ne suis pas sûre de moi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE vehicule (id_vehicule INT NOT NULL,
    annee INT(4),
    id_modele VARCHAR(15) NOT NULL,
    marque VARCHAR(15) NOT NULL,
    plaque VARCHAR(6) NOT NULL,
    PRIMARY KEY (id_vehicule),
    FOREIGN KEY (id_modele,marque) REFERENCES modele(id_modele,marque)
    )
    TYPE=INNODB;
    a+
    Soazig

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Super, ça marche!! Merchi beaucoup!!

    Je suis débutant, alors je vois pas tjs super bien ces trucs là!


    Bonne journée!!

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    pense au tag [Résolu] en bas à gauche.

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

Discussions similaires

  1. execution partielle d'un script PL/SQL
    Par dyvim dans le forum PL/SQL
    Réponses: 24
    Dernier message: 29/12/2005, 11h33
  2. Interraction avec un script PL/SQL
    Par duelooser dans le forum PL/SQL
    Réponses: 9
    Dernier message: 27/10/2005, 16h07
  3. Execution Script PL/SQL
    Par hair_peace dans le forum PL/SQL
    Réponses: 13
    Dernier message: 29/06/2005, 10h55
  4. Réponses: 24
    Dernier message: 31/05/2005, 15h07
  5. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59

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