【问题标题】:INSERT INTO syntax seems correct but still failsINSERT INTO 语法似乎正确但仍然失败
【发布时间】:2012-02-29 11:02:23
【问题描述】:

有人可以帮我快速解决吗,自从这篇文章以来,我已经坐了一个小时。

注意:(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

【问题讨论】:

  • 给出的错误是什么?
  • 您遇到了哪些 SQL 错误?

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


【解决方案1】:

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

【讨论】:

  • 我会将我所有的“desc”用途重命名为其他名称,如果是问题所在,我会将您的答案标记为正确。否则我会将较小的日期更改为 1760(我认为最小值可能是 1753 或接近)
  • desc 关键字似乎是问题所在,我重命名了表和 java 变量以防万一,它解决了我的问题!感谢您发现它!
【解决方案2】:

一见钟情-

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

【讨论】:

  • Melvin Protacio 让我知道了这个冲突,所以我很快解决了它。但是坦克适合你的职位!
【解决方案3】:

您有与 mysql 关键字匹配的列名在您的列名中使用反引号

【讨论】:

  • 是的,Melvin Protacio 请让我知道这是冲突的。 :-) 无论如何感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 2013-11-01
  • 2013-01-09
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多