2013-08-28 6 views
0

J'essaye de créer une table avec plusieurs clés étrangères, et je reçois une erreur. Je ne sais pas ce que je fais de mal, et je le bricole depuis un moment. Je suis sûr que c'est quelque chose de petit et stupide, mais l'aide est appréciée.MYSQL crée une erreur de table avec plusieurs clés étrangères

Create table Order(
order_number INT AUTO_INCREMENT, 
product_id INT(11) NOT NULL, 
address_id INT(11) NOT NULL, 
user_id INT(11) NOT NULL, 
quantity INT(3) NOT NULL, 
size VARCHAR(20) NOT NULL, 
status VARCHAR(20) NOT NULL, 
order_date DATE NOT NULL, 
PRIMARY KEY (order_number), 
FOREIGN KEY (user_id) 
REFERENCES User (user_id), 
FOREIGN KEY (product_id) 
REFERENCES Product (product_id), 
FOREIGN KEY (address_id) 
REFERENCES Address (address_id) 
)ENGINE = INNODB 

L'erreur spécifique que je reçois est:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Order(

NUMÉRO_COMMANDE INT AUTO_INCREMENT, product_id INT (11) NOT NULL, address_ » à la ligne 1

+2

'ORDER' qui est le nom de votre table que vous avez spécifié est un mot-clé réservé. Voici une liste complète des mots-clés réservés: [MySQL Reserved Keywords List] (http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html) –

Répondre

0

Vous ne pouvez pas simplement utiliser order comme ça, car c'est aussi un mot-clé; mettre entre guillemets:

Create table `Order`(
order_number INT AUTO_INCREMENT, 
product_id INT(11) NOT NULL, 
address_id INT(11) NOT NULL, 
user_id INT(11) NOT NULL, 
quantity INT(3) NOT NULL, 
size VARCHAR(20) NOT NULL, 
status VARCHAR(20) NOT NULL, 
order_date DATE NOT NULL, 
PRIMARY KEY (order_number), 
FOREIGN KEY (user_id) 
REFERENCES User (user_id), 
FOREIGN KEY (product_id) 
REFERENCES Product (product_id), 
FOREIGN KEY (address_id) 
REFERENCES Address (address_id) 
)ENGINE = INNODB 
+0

c'est tellement simple et stupide, merci. Je vais probablement changer de nom juste pour m'empêcher d'utiliser des citations partout. –

+0

ce ne serait pas une mauvaise idée; Même si «utiliser des citations partout» n'est pas une mauvaise idée en soi. – vollie

+0

les marques de tiques me rendent fou lors du codage MYSQL –

Questions connexes