MySQL JDBC语法错误异常
MySQL JDBC syntax error exception
几个月前我有一个 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();
尝试从 DAYS
中删除 S
,参考 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
几个月前我有一个 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();
尝试从 DAYS
中删除 S
,参考 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