MySQL - CREATE TABLE - 语法错误 - 错误1064

时间:2015-04-21 22:28:22

标签: mysql sql

我一直在看下面的sql脚本已经很久了,我看不出问题!这是错误1064 - 可能是任何东西......

CREATE TABLE order (order_no INTEGER NOT NULL AUTO_INCREMENT,
                vat_id INTEGER NOT NULL,
                order_status VARCHAR(30) NOT NULL,
                order_pick_date DATE,
                order_ship_from INTEGER NOT NULL,
                employee_id INTEGER NOT NULL,
                payment_id INTEGER,
                PRIMARY KEY (order_no))
        ENGINE = MYISAM;

3 个答案:

答案 0 :(得分:1)

Order是SQL中的保留字,为您的表选择一个不同的名称。

答案 1 :(得分:1)

问题是您正在尝试使用保留名称创建表。如果您将表名更改为' orders'那就行了。

请查看https://dev.mysql.com/doc/refman/5.5/en/reserved-words.html以获取保留字的完整列表。

答案 2 :(得分:1)

正如其他人已经指出的那样,保留字order就是问题所在。

但是如果你需要,你仍然可以用反引号/反引号括起来使用它:

`order`

更正的SQL语句(在MySQL 5.5.24中适用于我)是:

CREATE TABLE
`order`
(
     order_no INTEGER NOT NULL AUTO_INCREMENT
    ,vat_id INTEGER NOT NULL
    ,order_status VARCHAR(30) NOT NULL
    ,order_pick_date DATE
    ,order_ship_from INTEGER NOT NULL
    ,employee_id INTEGER NOT NULL
    ,payment_id INTEGER
    ,PRIMARY KEY (order_no)
)
ENGINE = MYISAM;