2016-12-08 5 views
1

테이블을 생성하기 위해 DDL 스크립트를 작성하는 데 문제가 있습니다. 나는 다음과 같은 코드가 EMPLOYEECLIENT 테이블을 만들 쓴 :테이블 생성시 SQL 구문 문제

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 테이블을 만들려고 :

at line 27: 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 ( Order_id int NOT NULL AUTO_INCREMENT,
Order_Placed char(10) NOT NULL' at line 1.

나는 내가 사용하고이 오류를 받고 있어요 이유는 확실하지 않다 :

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) 
); 

나는이 오류가 발생 앞의 표와 동일한 코드가 작동합니다. 지금 바로 오류가 발생하는 나는 FK의 출력을 왼쪽 *

당신은 ORDER 이후 역 따옴표를 사용하는 것이 좋습니다

+1

주문이 예약 된 단어입니다. 나는 당신이 그것을 뭔가 다른 것이라고 부른다. 아마도 '명령'. – Strawberry

답변

3

을 생각 reserved 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) 
); 
+0

이 효과가 있습니다! @Daerik – houston

+0

@houston 감사합니다. 도움이되는 답변을 찾은 경우 다른 사람들에게 도움이되도록 허용으로 표시하십시오. – Daerik