com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: syntax error, unexpected ‘?’
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [delete from act_ru_identitylink where ID_ = ? ]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: syntax error, unexpected ‘?’
v3.1.1
你好
请简单描述下做了什么操作导致该报错。
我们用程序做数据同步的时候,同步到MySQL没问题,把程序切换到tidb就报这个问题了。
通过jdbc 连接,预编译的sql 带占位符‘’?‘’ 的delete语句 = 或者in 都有问题,例子见上图。
从报错信息来看 ? 并没有被正确解析成 values,
可否上传下报错时间点对应的 tidb.log
问题已经解决
update 和insert语句使用占位符是可以的
你好,
从 tidb.log 中可以看到,传入 tidb 中的 sql 语句 ? 是没有被正确解析的,请检查下 java 程序,delete 模块对比下 update 和 insert 看是否有出入。
但是迁移回MySQL就没这个问题了
你好,
可以 debug 一下,对比连接数据源 mysql 和 tidb ,?
在哪个位置没有被传入,希望明确指出并复述下代码逻辑,并上传下截图差异,我们可以向研发同学反馈下,看是否为兼容性的问题。
好的,请稍等。
开发人员 放弃使用占位符,现在同步了