2011-08-10 132 views
0

我有一个错误在我的数据库MySQL错误在创建表

Error: Invalid structure on line 18. Refer to our Manual (PHPMYADMIN) 

我使用(WAMPSERVER 2 32位) -PHPMYADMIN - MYSQL 5.5.6 - PHP 5

虽然我需要使用InnoDB(ENGINE=InnoDB

感谢帮助我。看看在结构 ...变量名的含义并不重要。

这里是我的代码:

DROP TABLE IF EXISTS Adresse; 
DROP TABLE IF EXISTS Telephone; 
DROP TABLE IF EXISTS Personne; 
DROP TABLE IF EXISTS TelPers; 
DROP TABLE IF EXISTS Specialiste; 
DROP TABLE IF EXISTS Patient; 
DROP TABLE IF EXISTS ListePatient; 
DROP TABLE IF EXISTS Produit; 
DROP TABLE IF EXISTS Medicament; 
DROP TABLE IF EXISTS Materiel; 
DROP TABLE IF EXISTS Panier; 

CREATE TABLE Adresse(
idAdresse INT(100) NOT NULL PRIMARY KEY AUTO_INCREMENT, 
num   INT(5) NOT NULL, 
rue   VARCHAR(30) NOT NULL, 
ville   VARCHAR(15) NOT NULL, 
postal  VARCHAR(6) NOT NULL 
)ENGINE=InnoDB; 

CREATE TABLE Telephone(
idTel   INT(100) NOT NULL PRIMARY KEY AUTO_INCREMENT, 
typeTel  VARCHAR(15) NOT NULL, 
ind   INT(3) NOT NULL, 
quartier  INT(3) NOT NULL, 
num   INT(4) NOT NULL, 
)ENGINE=InnoDB; 

CREATE TABLE Personne(
idPersonne  INT(100) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
nom    VARCHAR(15) NOT NULL, 
prenom   VARCHAR(15) NOT NULL, 
idTel    INT(100) NOT NULL, 
idAdresse  INT(100) NOT NULL, 
FOREIGN KEY(idAdresse) REFERENCES Adresse(idAdresse), 
FOREIGN KEY(idTel) REFERENCES Telephone(idTel) 
)ENGINE=InnoDB; 

CREATE TABLE TelPers(
idPersonne  INT(100) PRIMARY KEY NOT NULL, 
idTel    INT(100) PRIMARY KEY NOT NULL, 
FOREIGN KEY(idPersonne) REFERENCES Personne(idPersonne), 
FOREIGN KEY(idTel) REFERENCES Telephone(idTel) 
)ENGINE=InnoDB; 

CREATE TABLE Specialiste(
login   VARCHAR(10) PRIMARY KEY NOT NULL PRIMARY KEY, 
password VARCHAR(10) NOT NULL, 
profession VARCHAR(20) NOT NULL, 
idListeP  INT(5), 
idPanier  INT(5), 
idPersonne INT(100), 
FOREIGN KEY(idPersonne) REFERENCES Personne(idPersonne) 
)ENGINE=InnoDB; 

CREATE TABLE Patient(
idPatient INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, 
sexe   CHAR NOT NULL, 
anniv   DATE, 
assurance INT(3) NOT NULL, 
idPersonne INT(100), 
FOREIGN KEY(idPersonne) REFERENCES Personne(idPersonne) 
)ENGINE=InnoDB; 

CREATE TABLE ListePatient(
idListeP  INT(5) NOT NULL PRIMARY KEY, 
idPatient INT(10)NOT NULL PRIMARY KEY, 
FOREIGN KEY(idListeP) REFERENCES Specialiste(idListeP), 
FOREIGN KEY(idPatient) REFERENCES Patient(idPatient) 
)ENGINE=InnoDB; 

CREATE TABLE Produit(
idProduit  INT(100) NOT NULL PRIMARY KEY AUTO_INCREMENT, 
nom   VARCHAR(50) NOT NULL, 
descr   VARCHAR(255) NOT NULL, 
prix   DECIMAL(5,2) NOT NULL, 
qte   INT(100) NOT NULL 
)ENGINE=InnoDB; 

CREATE TABLE Medicament(
idMedic   INT(100)NOT NULL PRIMARY KEY AUTO_INCREMENT, 
marque  VARCHAR(10) NOT NULL, 
typeMed  VARCHAR(10) NOT NULL, 
idProduit  INT(100) NOT NULL, 
FOREIGN KEY(idProduit) REFERENCES Produit(idProduit) 
)ENGINE=InnoDB; 

CREATE TABLE Materiel(
idMateriel INT(100) NOT NULL PRIMARY KEY AUTO_INCREMENT, 
rabais  INT(99) NOT NULL,      
idProduit INT(100) NOT NULL, 
FOREIGN KEY(idProduit) REFERENCES Produit(idProduit) 
)ENGINE=InnoDB; 

CREATE TABLE Panier(
idPanier  INT(5) NOT NULL PRIMARY KEY, 
idProduit  INT(100) NOT NULL PRIMARY KEY, 
FOREIGN KEY(idPanier) REFERENCES Specialiste(idPanier), 
FOREIGN KEY(idProduit) REFERENCES Produit(idProduit) 
)ENGINE=InnoDB; 

感谢您的帮助! :d

+0

那么如果我们没有错误。其种类无用...... – Neal

+0

同意。请发布您遇到的错误,以帮助将某人指向正确的方向。 – RobB

+0

错误:行18无效的结构,请参考我们的手册(PHPMYADMIN) – Hulk

回答

2
  1. Telephone声明有闭)

  2. TelPers之前逗号(,)在login柱有两个主键

  3. SpecialistePRIMARY KEY两次

  4. ListePatien有两种主要键

  5. Panier有两个主键

来定义主键上的两列使用

CREATE TABLE Panier(
idPanier  INT(5) NOT NULL, 
idProduit  INT(100) NOT NULL, 
PRIMARY KEY (`idPanier`,`idProduit`), 
FOREIGN KEY(idPanier) REFERENCES Specialiste(idPanier), 
FOREIGN KEY(idProduit) REFERENCES Produit(idProduit) 
)ENGINE=InnoDB; 

(同其它表)

+0

为2个主键,我想混了2变量来使一个PK – Hulk

+0

你是老板,我将测试它在2小时内回到这个位置。 – Hulk