2011-08-10 160 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