MySQL JDBC语法错误异常

时间:2015-09-16 01:03:44

标签: mysql exception syntax

我有几个月前工作过的MySQL项目,最近我又重新开发了它。但是,当它执行某些语句时,会出错。 SQL语句是DELETE FROM table WHERE expires < DATE_ADD(NOW(), INTERVAL ? DAYS)

现在,这已经过去了。我也知道它背后的java代码是有效的,因为没有其他例外。此外,我将该语句插入SQL客户端,它也给出了类似的错误。

java控制台中的错误是:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'DAYS)' at line 1 然后是一个堆栈跟踪,它引导我到准备好的语句中调用executeUpdate()的代码行。

自从我之前开发以来,我不记得更新或更改了很多。

编辑:我的java代码是这样的: add(37, "DELETE FROM table WHERE expires < DATE_ADD(NOW(), INTERVAL ? DAYS)");函数add()在给定字符串上调用connection.prepareStatement()并将其放入PreparedStatements数组中。抛出异常的行是statements[37].executeUpdate();

1 个答案:

答案 0 :(得分:1)

尝试从S移除DAYS,并参考MySQL Reference Manual

DELETE FROM table WHERE expires < DATE_ADD(NOW(), INTERVAL ? DAY)

select date_add(now(), interval 1 day); //Works
select date_add(now(), interval 1 days); //Doesn't work