Bonjour,

Je souhaite créer une base toute simple avec mysql (avec EasyPHP 2.6.1)...

Voilà ce que je fais :

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
42
43
44
45
46
47
48
49
50
51
52
 
-- Table Immeuble
 
CREATE TABLE Immeuble
(
 nomImm VARCHAR(15) NOT NULL,
 adresse VARCHAR(50) NOT NULL,
 nbEtages TINYINT,
 anneeConstruction SMALLINT, 
 nomGerant VARCHAR(15) NOT NULL,
 PRIMARY KEY(nomImm)
)ENGINE=InnoDB;
 
-- Table Appart
 
CREATE TABLE Appart
(
 nomImm VARCHAR(15) NOT NULL,
 noApp TINYINT NOT NULL,
 superficie SMALLINT,
 etage TINYINT,
 PRIMARY KEY (nomImm, noApp),
 FOREIGN KEY (nomImm) REFERENCES Immeuble( nomImm ) ON DELETE CASCADE
)ENGINE=InnoDB;
 
 
-- Table Personne
 
CREATE TABLE Personne
(
 nom VARCHAR(15) NOT NULL,
 age TINYINT,
 profession VARCHAR(15) NOT NULL,
 PRIMARY KEY (nom)
)ENGINE=InnoDB;
 
 
-- Table Occupant
 
CREATE TABLE Occupant
(
 nomImm VARCHAR(15) NOT NULL,
 noApp TINYINT NOT NULL,
 nomOcc VARCHAR(15) NOT NULL, 
 anneeArrivee SMALLINT,
 
 PRIMARY KEY (nomImm, noApp, nomOcc), 
 
 FOREIGN KEY (nomImm) REFERENCES Immeuble( nomImm ) ON DELETE CASCADE,
 FOREIGN KEY (nomOcc) REFERENCES Personne( nom ) ON DELETE CASCADE,
 FOREIGN KEY (noApp) REFERENCES Appart( noApp ) ON DELETE CASCADE
)ENGINE=InnoDB;
Tout marche, sauf la dernière ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FOREIGN KEY (noApp) REFERENCES Appart( noApp ) ON DELETE CASCADE
J'ai beau la mettre avant, après rien n'y fait !!
Les 2 autres lignes précédentes fonctionnent, mais celle-ci non !!!
L'erreur retournée est
MySQL a répondu:
#1005 - Ne peut cr�er la table '.\dbimmeubles\occupant.frm' (Errcode: 150)
Je comprends vraiment pas pourquoi !!!


En fait j'ai l'impression que mysql ne reconnait pas la table Appart car si je mets
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FOREIGN KEY (noApp) REFERENCES Appart( bidule ) ON DELETE CASCADE
ça me renvoie la même erreur !!

Help !