使用MySQL&创建表顺序MariaDB发出1064错误

时间:2013-10-01 15:29:50

标签: mysql sql mariadb

我正在尝试使用MySQL和MariaDB创建一个名为Order的表。除了表格的id之外,我已经删除了所有内容。如果我将表名更改为类似于Test,它可以工作,但是将表创建为Order,'Order'或“Order”不起作用。

SQL:

CREATE TABLE IF NOT EXISTS Order ( 
    id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY 
) ENGINE = InnoDB;

错误讯息:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Order ( id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB' at line 1

但这有效:

CREATE TABLE IF NOT EXISTS Test ( 
    id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY 
) ENGINE = InnoDB;

MySQL版本输出:

mysql  Ver 15.1 Distrib 5.5.33a-MariaDB, for debian-linux-gnu (x86_64) using readline 5.1

2 个答案:

答案 0 :(得分:3)

使用backticks,因为orderreserved word

 CREATE TABLE `Order` ....

或更好,不要这样做。这会造成混乱。

答案 1 :(得分:0)

这是一个保留字。请参阅http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

上的保留字列表

如果您需要使用保留字作为表名或列名,请将其放在后引号中。但是你最好避免使用保留词,因为它们将来会引起很多混乱和许多错误。