【问题标题】:SQL Invalid Syntax in Java but not in WorkbenchJava中的SQL无效语法但在Workbench中没有
【发布时间】:2014-06-24 15:07:33
【问题描述】:

为什么这个语句在工作台中可以正常工作,但在 Java 中却不行。

SET @sqlstmt := IF( @exist <= 0, 'select ''INFO: Key does not exist.''', 'ALTER TABLE `SOMETABLE` DROP FOREIGN KEY `SOMEKEY`');

在 Java 中我得到 ​​p>

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 'SET @sqlstmt := IF( @exist <= 0, 'select ''INFO: Key does not exist.''', 'ALTER ' at line 1

【问题讨论】:

  • 那些引号看起来很奇怪。不应该是"而不是两个单引号吗?
  • 您是否尝试过简化查询以隔离导致错误的部分?
  • 你知道 JDBC 使用什么作为分隔符吗?
  • 我原以为单引号应该在单引号内时用单引号转义。这不是真的吗?
  • 我没见过。您能否尝试使用反斜杠而不是其他引号来转义这些引号?

标签: java mysql sql jdbc


【解决方案1】:

事实证明,正在执行多个语句(用分号分隔)。在 JDBC MYSQL 中你需要allowMultiQueries=true

【讨论】:

    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2014-02-23
    • 2013-04-03
    相关资源
    最近更新 更多