Проблемы с синтаксисом SQL при создании таблицы

У меня проблемы с написанием сценариев DDL для создания таблиц. Я написал следующий код для создания EMPLOYEE а также CLIENT Таблица:

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, чтобы узнать правильный синтаксис для использования рядом с 'ORDER (Order_id int NOT NULL AUTO_INCREMENT,
Order_Placed char (10) NOT NULL 'в строке 1.

Я не уверен, почему я получаю эту ошибку, когда я использую тот же код из предыдущих таблиц, которые работали.

* Я пропустил FK, чтобы понять ошибку

1 ответ

Решение

Вы будете хотеть использовать backticks, так как 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)
);
Другие вопросы по тегам