MySQL创建表时出错

发布于 2024-11-29 07:44:37 字数 3509 浏览 2 评论 0原文

的数据库有错误

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

I have an error in my database

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

I use (WAMPSERVER 2 32bits)
-PHPMYADMIN
- MYSQL 5.5.6
- PHP 5

Although i need to use InnoDB (ENGINE=InnoDB)

thanks to help me. Take a look at the structure... the variable name meaning is not important.

Here's my code:

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;

THANKS FOR YOUR HELP! :D

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自由范儿 2024-12-06 07:44:37
  1. Telephone 声明中,在关闭 ) 之前有一个逗号 (,)

  2. TelPers 中有两个主键

  3. In Specialistelogin 列中有两次 PRIMARY 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;

(在其他表上也是如此)

  1. In Telephone declaration there is a comma (,) before closing )

  2. In TelPers there are two primary keys

  3. In Specialiste there is PRIMARY KEY twice in login column

  4. In ListePatien there are two primary keys

  5. In Panier there are two primary keys

To define a PRIMARY key on two columns use

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;

(same on other tables)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文