Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/12/2007, 02h07   #1
Membre du Club
 
Inscription : février 2007
Messages : 225
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 225
Points : 65
Points : 65
Par défaut Clé étrangère avec mysql

Bonjour,
Je travail avec mysql et lorsque je veux créer mes tables avec le code ci dessous:

Code :
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
CREATE TABLE Pays
(IdPays VARCHAR(3) NOT NULL,
Numero VARCHAR(3) NOT NULL,
Libelle VARCHAR(20) NOT NULL,
PRIMARY KEY (IdPays)) TYPE=INNODB;
 
CREATE TABLE Busi
(IdBusi INT NOT NULL AUTO_INCREMENT,
Nom VARCHAR(20) NOT NULL,
Prenom VARCHAR(30) NOT NULL,
Ville VARCHAR(20) NOT NULL,
CodePost VARCHAR(20),
Tel VARCHAR(15),
Email VARCHAR(50) NOT NULL,
MDP VARCHAR(100) NOT NULL,
Avatar BLOB,
PRIMARY KEY (IdBusi),
INDEX (IdPays),
FOREIGN KEY (IdPays) REFERENCES Pays (IdPays) ON UPDATE CASCADE ON DELETE CASCADE) TYPE=INNODB;
 
CREATE TABLE Message
(IdMessage INT NOT NULL AUTO_INCREMENT,
Libelle VARCHAR(1000) NOT NULL,
DateMsg VARCHAR(30) NOT NULL,
Delai INT NOT NULL,
Photo BLOB,
PRIMARY KEY (IdMessage),
INDEX (IdBusi),
FOREIGN KEY (IdBusi) REFERENCES Busi (IdBusi) ON UPDATE CASCADE ON DELETE CASCADE) TYPE=INNODB;
Seul la première table est crée et il s'affiche un message d'erreur qui dit

Citation:
la clé 'IdPays' n'existe pas dans la table
Je crois que c'est lié à la deuxième table. Mais je comprends pas ce qui ce passe et je sais aussi que faire pour créer les deux autres tables. Quelqu'un peut il m'aider?
Merci
methodman225 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2007, 11h05   #2
Membre éclairé
 
Avatar de jota5450
 
Jota Alves
Inscription : janvier 2006
Messages : 263
Détails du profil
Informations personnelles :
Nom : Jota Alves
Âge : 36

Informations forums :
Inscription : janvier 2006
Messages : 263
Points : 303
Points : 303
slt...

Dans la table Busi, il te manque : IdPays VARCHAR(3) NOT NULL,
Dans la table Message,il te manque : IdBusi INT NOT NULL,


au lieu de TYPE=INNODB; met:
ENGINE = InnoDB;
jota5450 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2007, 11h19   #3
Membre du Club
 
Inscription : février 2007
Messages : 225
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 225
Points : 65
Points : 65


Merci à toi jota5450. C'était bien la source de mon problème. Il est maintenant resolu. Mais je voudrais aussi savoir la différence entre ENGINE et TYPE
methodman225 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2007, 11h56   #4
Membre éclairé
 
Avatar de jota5450
 
Jota Alves
Inscription : janvier 2006
Messages : 263
Détails du profil
Informations personnelles :
Nom : Jota Alves
Âge : 36

Informations forums :
Inscription : janvier 2006
Messages : 263
Points : 303
Points : 303
slt...

Parce que quand on utilise ta syntaxe, on recoit un :

"'TYPE=storage_engine' is deprecated; use 'ENGINE=storage_engine' instead"...
jota5450 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h03.


 
 
 
 
Partenaires

Hébergement Web