创建表的SQL语法问题

时间:2016-12-08 16:29:51

标签: mysql syntax mysql-error-1064

我在编写DDL脚本以创建表时遇到问题。我编写了以下代码来创建EMPLOYEECLIENT表:

CREATE TABLE EMPLOYEE (
    Employee_id INT NOT NULL AUTO_INCREMENT,
    fname VARCHAR (15) NOT NULL,
    minit VARCHAR (1),
    lname VARCHAR (20) NOT NULL,
    address VARCHAR (55),
    start_date date,
    Job_type VARCHAR (20),
    PRIMARY KEY (Employee_id)
);


CREATE TABLE CLIENT (
    Client_id INT NOT NULL Auto_Increment,
    Rest_name VARCHAR (25) NOT NULL,
    Pri_contact_name VARCHAR (25) NOT NULL,
    Pri_phone CHAR (13) NOT NULL,
    Pri_email VARCHAR (35) NOT NULL,
    Cust_addr VARCHAR (50) NOT NULL,
    PRIMARY KEY (Client_id)
);

创建这些表时没有任何问题。但是,当我尝试使用以下代码创建ORDER表时:

CREATE TABLE ORDER (
    Order_id INT NOT NULL AUTO_INCREMENT,
    Order_Placed CHAR (10) NOT NULL,
    Delivered_on CHAR (10) NOT NULL,
    Total VARCHAR (8) NOT NULL,
    Ship_addr VARCHAR (50) NOT NULL,
    Order_status VARCHAR (35) NOT NULL,
    PRIMARY KEY (Order_id)
);

我收到了这个错误:

  

第27行:您的SQL语法中有错误;检查手册   对应于您的MySQL服务器版本以获得正确的语法   使用near' ORDER(Order_id int NOT NULL AUTO_INCREMENT,
  Order_Placed char(10)NOT NULL'在第1行。

我不确定为什么当我使用前面表格中的相同代码时,我会收到此错误。

*我现在遗漏了FK,只是为了得到误差

1 个答案:

答案 0 :(得分:3)

您需要使用反引号,因为ORDERreserved keyword

CREATE TABLE `ORDER` (
    Order_id INT NOT NULL AUTO_INCREMENT,
    Order_Placed CHAR (10) NOT NULL,
    Delivered_on CHAR (10) NOT NULL,
    Total VARCHAR (8) NOT NULL,
    Ship_addr VARCHAR (50) NOT NULL,
    Order_status VARCHAR (35) NOT NULL,
    PRIMARY KEY (Order_id)
);