2012-02-29 84 views
-1

有人可以帮我快速出来,自从这篇文章以来,我一直坐在这里一个小时。INSERT INTO语法看起来正确,但仍然失败

注:(空)是一个字符串,实际上不是一个NULL值...基本上应该是一样的用“你好”作为价值

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 
+4

给出的错误是什么? – Dervall 2012-02-29 11:04:17

+3

你得到了什么SQL错误? – 2012-02-29 11:04:45

回答

1

除了从desc是一个关键字,它也值得检查你的日期指定的值。我相信你已经超过了允许的日期或小于允许的最短日期的限制。首先检查语句是否成功,日期是当前日期。

+0

我会将我所有的“desc”用法重新命名为其他东西,如果问题出现,请将您的答案标记为正确。否则,我会将较小的日期更改为1760(我认为最小值可能是1753或接近此值) – 2012-02-29 11:27:05

+0

desc关键字似乎是问题所在,我将表和Java变量重命名以防万一并解决了我的问题!感谢您的发现! – 2012-02-29 11:31:35

1

在第一sight-

descmysql 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错误消息,我们可以提供更接近的答案。

+0

Melvin Protacio让我知道这场冲突,所以我很快解决了它。但坦克为您的帖子! – 2012-02-29 11:33:21

1

你使用MySQL的关键字匹配的列名使用反引号与列名

+0

是的,Melvin Protacio请让我知道它是相互冲突的。 :-)无论如何感谢您的回复! – 2012-02-29 11:30:50