2016-07-28 7 views
0

Я вытягиваю свои волосы из-за этого. Я подключился к серверу MySQL и пытаюсь создать таблицу на нем:MySQL CREATE TABLE «У вас есть ошибка в синтаксисе SQL»

CREATE TABLE order (
    order_id INT, 
    order_is_overnight BIT, 
    order_quantity INT, 
    order_amount DOUBLE, 
    order_timestamp DATETIME 
); 

Когда я запускаю это я получаю:

Error: 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, 
     order_is_overnight BIT, 
     order_quantity INT, 
     order_amou' at line 1 
SQLState: 42000 
ErrorCode: 1064 

Это смутное сообщение об ошибке в мире, сродни Java исключение, которое гласит: «Упс, что-то пошло не так где-то в вашем коде!«

Любые идеи, в которых я буду ошибаться ?! Я проверил, перепроверялся и перепроверялся, и это, кажется, совершенно корректный/законный оператор CREATE TABLE (не беспокойтесь о производительности, индексах, ключах и т. Д., Это всего лишь макет/таблица тестов).

+3

не забывайте, что порядок является зарезервированным словом – e4c5

+0

AHHHHHHHHHHHHH ..... спасибо @ e4c5 (+1) – smeeb

ответ

2

order является зарезервированным словом, вы должны заключить его имя в спине цитирует

CREATE TABLE `order` (
    order_id INT, 
    order_is_overnight BIT, 
    order_quantity INT, 
    order_amount DOUBLE, 
    order_timestamp DATETIME 
); 
+0

Спасибо @Ivan C. (+1). FWIW 'order' (в одинарных кавычках) не работал, но изменил его на ** ордера ** (множественное число). Weird. – smeeb

+0

'order' - это зарезервированное слово, используемое как это:' SELECT * FROM table ORDER BY id' ... BTW плата бесплатно, чтобы отметить мой ответ как принятый :) –

+0

Я буду чувствовать себя свободно! Когда я дам мне. Вы не можете принимать ответы в течение определенного промежутка времени после размещения вопроса ;-) – smeeb