0

行,

我确定我在这里做错了什么,但我终其一生都无法弄清楚。

这是我的桌子

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');

它错误地说 ERROR 1064 (42000): You have an error in your SQL syntax; 检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'to) v alues('sample_to_name')' 附近使用正确的语法

我究竟做错了什么?

4

3 回答 3

2

to是 mysql 的保留字应该是反引号。

避免使用保留字创建列名或用反引号将它们括起来

insert into email_queue(`to`) values('sample_to_name');
于 2011-04-08T06:18:30.743 回答
1

你需要反引号来

insert into email_queue(`to`) values('sample_to_name');
于 2011-04-08T06:18:36.733 回答
1

问题是因为

   to is mysql reserved word
于 2011-04-08T06:19:34.660 回答