2015-08-11 5 views
0

У меня возникают проблемы с вставкой в ​​поле метки времени.Значение вставки времени вставки MySQL приводит к сбою команды

Вот моя схема:

CREATE TABLE `sponsorlog` (
    `updated` timestamp, 
    `user` varchar(200) NOT NULL, 
    `company` varchar(200) NOT NULL, 
    `change` varchar(200) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

Вот команда вставки:

insert into sponsorlog (user, company, change, updated) 
values ('[email protected]', '3M', 'Sponsor Jon Bove added', '2015-08-10 17:43:32'); 

И ошибка типичная бесполезна ошибка MySQL. Кажется, это указывает на значение даты/времени, но я не вижу ничего плохого в этом. Есть идеи?

ОШИБКА 1064 (42000): У вас возникла ошибка в синтаксисе SQL; проверьте руководство пользователя , соответствующее версии вашего сервера MySQL, для правильного синтаксиса , используемого рядом с «измененными, обновленными» значениями ('[email protected]', '3M', 'Спонсор Jon Bove добавил', 'в строке 1

ответ

2

change зарезервированное слово и должно быть заключено в кавычки в MySQL идентификатор кавычка является кавычка:. `

insert into sponsorlog (user, company, `change`, updated) 
values ('[email protected]', '3M', 'Sponsor Jon Bove added', '2015-08-10 17:43:32'); 

Также user является не зарезервированные ключевые слова, так, чтобы быть последовательным вы можете хотите использовать котировки для всех столбцов.

Если идентификатор содержит специальные символы или зарезервированное слово, вы должны указать его всякий раз, когда вы обратитесь к нему

Reference

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