Вставить запрос в MySQL с полем auto_increment - PullRequest
0 голосов
/ 08 апреля 2011

Хорошо,

Я уверен, что я делаю что-то здесь не так, но я не могу понять это для жизни.

Вот мой стол

CREATE TABLE `email_queue` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `from` varchar(256) DEFAULT NULL,
  `to` varchar(4182) DEFAULT NULL,
  `cc` varchar(4182) DEFAULT NULL,
  `subject` varchar(4182) DEFAULT NULL,
  `body` varchar(4182) DEFAULT NULL,
  `status` varchar(64) DEFAULT NULL,
  `attempts` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) 

Когда я делаю

insert into email_queue values (1,'','','','','','',0);

работает нормально и вставляет пустые значения

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

insert into email_queue(to) values('sample_to_name');

это ошибка, говоря ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с) v alues ​​('sample_to_name') 'в строке 1

Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 08 апреля 2011

to - это mysql зарезервировано слово должно быть в обратных галочках.

Либо избегайте создания имен столбцов с зарезервированными словами, либо заключите их в обратную черту ``

insert into email_queue(`to`) values('sample_to_name');
1 голос
/ 08 апреля 2011

проблема в том, что

   to is mysql reserved word
1 голос
/ 08 апреля 2011

Вам нужно вернуться на

insert into email_queue(`to`) values('sample_to_name');
...