当前使用版本(必填,否则不予处理)
3.5.6
该问题是如何引起的?(确定最新版也有问题再提!!!)
我们使用的mysql, 解析update ignore table语句, 会误把ignore关键字解析成表名
language=java
String sql = "update ignore student set name = 'abc' where id = 4";
TableNameParser tableNameParser = new TableNameParser(sql);
System.out.println(tableNameParser.tables());
输出的结果为[ignore] , 但是这个语句的实际更新表名为 student
重现步骤(如果有就写完整)
实现一个自定义TableNameHandler, 并打印dynamicTableName方法中的tableName参数
执行任意一个update ignore table语句
观察tableName参数值是否为ignore
报错信息
Table 'ignore' doesn't exist
Comment From: nieqiurong
用 3.5.7-SNAPSHOT 试试
Comment From: weixiao800
用 3.5.7-SNAPSHOT 试试
验证了, 没有问题