创建表时出现MySQL错误

时间:2011-08-10 18:30:10

标签: mysql phpmyadmin structure

我的数据库中有错误

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

我使用(WAMPSERVER 2 32bits) -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

1 个答案:

答案 0 :(得分:2)

  1. Telephone声明中,在关闭,之前有一个逗号()

  2. TelPers中有两个主键

  3. Specialiste PRIMARY KEY列中有login两次

  4. ListePatien中有两个主键

  5. Panier中有两个主键

  6. 要在两列上定义PRIMARY键,请使用

    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;
    

    (与其他表相同)