Проблемы с синтаксисом 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)
);