WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Coupable MySQL ou PhpMyAdmin ?
Envoyé par: newsforums (---.fbx.proxad.net)
Date: 30 May 2006 à 21:48

Bonjour,

Je suis sous Wamp 5 V. 1.6.3 (MySQL 5.0.21-community-nt; PHP 5.1.4; PhpMyAdmin 2.8.0.3 et Apache/2.0.55 (Win32) sous Wxp.

Je tente d'importer un fichier sql pour créer les tables de ma base Films.
L'import se plante lors de l'importation de la première table indiquant des clés étrangères (Film). J'obtiens un numéro d'erreur 1005 lors de la commande CREATE TABLE, et un message d'erreur de numéro 150.
Cela signigie bien que la création de la table a échoué à cause de la contrainte de clé étrangère, qui n'a pas été correctement formulée ?
Je me suis contenté d'utiliser un fichier sql d'un livre -qui fonctionne chez mon voisin- que voici :

Code :

#
# Commandes de création de la base
#

# Pour se connecter toujours à la bonne base

USE Films;

DROP TABLE IF EXISTS Film;
DROP TABLE IF EXISTS Artiste;
DROP TABLE IF EXISTS Notation;
DROP TABLE IF EXISTS Internaute;
DROP TABLE IF EXISTS Pays;
DROP TABLE IF EXISTS Role;

# Création des tables

CREATE TABLE Internaute (email VARCHAR (40) NOT NULL,
nom VARCHAR (30) NOT NULL ,
prenom VARCHAR (30) NOT NULL,
motDePasse VARCHAR (32) NOT NULL,
anneeNaiss INTEGER,
PRIMARY KEY (email));

CREATE TABLE Pays (code VARCHAR(4) NOT NULL,
nom VARCHAR (30) DEFAULT 'Inconnu' NOT NULL,
langue VARCHAR (30) NOT NULL,
PRIMARY KEY (code));

CREATE TABLE Artiste (id INTEGER AUTO_INCREMENT NOT NULL,
nom VARCHAR (30) NOT NULL,
prenom VARCHAR (30) NOT NULL,
anneeNaiss INTEGER,
PRIMARY KEY (id),
UNIQUE (nom, prenom));

CREATE TABLE Film (titre VARCHAR (50) NOT NULL,
annee INTEGER NOT NULL,
idMES INTEGER,
genre ENUM ('Histoire', 'Drame',
'Suspense', 'Catastrophe',
'Policier', 'Thriller', 'Aventures',
'Science-fiction', 'Comédie',
'Comédie dramatique',
'Comédie sentimentale',
'Fantastique', 'Horreur',
'Action', 'Guerre',
'Dessin animé', 'Documentaire',
'Western') NOT NULL,
resume TEXT,
codePays VARCHAR (4),
PRIMARY KEY (titre),
FOREIGN KEY (idMES) REFERENCES Artiste,
FOREIGN KEY (codePays) REFERENCES Pays);

CREATE TABLE Notation (titre VARCHAR (50) NOT NULL,
email VARCHAR (40) NOT NULL,
note INTEGER NOT NULL,
PRIMARY KEY (titre, email),
FOREIGN KEY (titre) REFERENCES Film,
FOREIGN KEY (email) REFERENCES Internaute);

CREATE TABLE Role (titre VARCHAR (50) NOT NULL,
idActeur INTEGER NOT NULL,
nomRole VARCHAR(30),
PRIMARY KEY (titre,idActeur),
FOREIGN KEY (titre) REFERENCES Film,
FOREIGN KEY (idActeur) REFERENCES Artiste);

# On quitte mysql

exit

------
Je ne peux donc rien faire.
Il ne peut s'agir que de ma version de MySQL ou de mon PhpMyAdmin, non ?!
Mais comme avec la console MySQL, cette dernière m'affiche une erreur de syntaxe avec :
mysql> < Films.sql
ou
mysql> < Films.sql;
ou
mysql> Films.sql;
ou
mysql> Films.sql

Rosa L.


Re: Coupable MySQL ou PhpMyAdmin ?
Envoyé par: newsforums (---.fbx.proxad.net)
Date: 31 May 2006 à 15:26

Ca fonctionne !!!
Pourquoi ?
A force de tout essayer, je ne sais plus la raison :
- j'ai utilisé UTF8_Unicode_ci pour MySQL et la base
- j'ai supprimé la commande exit à la fin du fichier sql

Quant à savoir pourquoi les noms des colonnes n'étaient pas listées dans les FOREIGN KEY (et dans le bouquin et dans le fichier numérique sql...
Ca dépasse l'entendement.
Merci en tous cas pour l'aide.

Rosa L.

Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP