2017-01-19 4 views
0

Я пытаюсь импортировать некоторые поля в базу данных MySQL, вот мой файл импорта ...MySql импорт неудачу на DECIMAL

CREATE TABLE mytable(
zip  VARCHAR(7) NOT NULL PRIMARY KEY 
,lat  DECIMAL(10,8) NOT NULL 
,long  DECIMAL(11,8) NOT NULL 
,data  VARCHAR(3) NOT NULL 
); 

Это дает мне следующее сообщение об ошибке ...

check the manual that corresponds to your MySQL server version for the right syntax to use near 'long DECIMAL(11,8) NOT NULL ,data VARCHAR(3) NOT NULL)' at line 4 

не любя long поле, которое я пытаюсь установить как DECIMAL типа

Где я буду неправильно?

+0

Подсказка находится в сообщении об ошибке. Ошибка всегда в (или сразу слева от) первого слова в сообщении об ошибке: https://dev.mysql.com/doc/refman/5.5/en/keywords.html – Strawberry

+1

Кстати, если вы выполняете арифметику , VARCHAR (3), вероятно, не имеет большого смысла (но опять же, я на самом деле не сделал арифметику). – Strawberry

+0

Можете ли вы подробно остановиться? Не уверен, что я следую тому, что вы подразумеваете под арифметикой. – fightstarr20

ответ

3

long - зарезервированное ключевое слово в MySQL. Попробуйте использовать это как:

CREATE TABLE mytable 
(zip  VARCHAR(7) NOT NULL PRIMARY KEY 
,lat  DECIMAL(10,8) NOT NULL 
,`long` DECIMAL(11,8) NOT NULL 
,data  VARCHAR(3) NOT NULL 
); 

Или, что лучше, попробуйте использовать другое имя. Для широты и долготы это могут быть lat и lng или lat и lon.

+1

Не используйте длинный. Никто больше не делает, и теперь мы знаем, почему. – Strawberry

+0

Спасибо, он смотрел мне в лицо все время! Я зарезервировал ключевые слова в своем контрольном списке, но не заметил его – fightstarr20

Смежные вопросы