INSERT INTO语法似乎正确但仍然失败

时间:2012-02-29 11:02:23

标签: java mysql syntax jax-ws insert-into

有人可以帮助我快点,自从这篇文章以来我一直坐在这里一个小时。

注意:(null)是一个字符串,实际上不是NULL值...应该与使用'Hello'作为值

相同
INSERT INTO tasks (category,completion_dtm,desc,duedate,notification_duedate,notification_one,notification_two,priority,reminder_one,reminder_two,title,timestamp) VALUES('None','3999-01-01 00:00:00','(null)',('1000-01-01 00:00:00'),'(null)','(null)','(null)',2,('1000-01-01 00:00:00'),('1000-01-01 00:00:00'),'Task 3',('1000-01-01 00:00:00')) ON DUPLICATE KEY UPDATE id=VALUES(id)

我的语法有什么问题吗?感谢您的任何见解!

编辑: 抱歉,认为错误很明显:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc,duedate,notification_duedate,notification_one,notification_two,priority,rem' at line 1

3 个答案:

答案 0 :(得分:1)

乍一看 -

desc是一个mysql reserved word,你必须把它包含在反引号中``

NSERT INTO tasks (category,completion_dtm,`desc`,duedate,notification_duedate,notification_one,notification_two,priority,reminder_one,reminder_two,title,timestamp) VALUES('None','3999-01-01 00:00:00','(null)',('1000-01-01 00:00:00'),'(null)','(null)','(null)',2,('1000-01-01 00:00:00'),('1000-01-01 00:00:00'),'Task 3',('1000-01-01 00:00:00')) ON DUPLICATE KEY UPDATE id=VALUES(id)

如果您发布确切的SQL错误消息,我们可以提供更详细的答案。

答案 1 :(得分:1)

您有与mysql关键字匹配的列名,请使用带有列名的反引号

答案 2 :(得分:1)

除了desc是关键字之外,还值得检查您在日期中指定的值。我相信您已超过允许的日期限制或小于允许的最短日期。首先检查语句是否成功,日期是当前日期。