我在插入时间戳字段时遇到问题。
这是我的架构:
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命令:
insert into sponsorlog (user, company, change, updated)
values ('attaskadmin@llts.com', '3M', 'Sponsor Jon Bove added', '2015-08-10 17:43:32');
错误是典型的无用的MySQL错误。它似乎指向日期/时间值,但我看不出它有什么问题。有什么想法吗?
错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在“更改,更新”值附近使用的语法('attaskadmin@llts.com', '3M','赞助商Jon Bove补充','在第1行
答案 0 :(得分:2)
change
是保留字,需要引用。在MySQL中,标识符引号字符是反引号:`
insert into sponsorlog (user, company, `change`, updated)
values ('attaskadmin@llts.com', '3M', 'Sponsor Jon Bove added', '2015-08-10 17:43:32');
同样user
是非保留关键字,因此为了保持一致,您可能希望对所有列使用引号。
如果标识符包含特殊字符或是保留字, 你引用它时必须引用它