diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbSyncService.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbSyncService.java index bb804e40..0448bcc5 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbSyncService.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbSyncService.java @@ -296,15 +296,16 @@ public class RdbSyncService { StringBuilder updateSql = new StringBuilder(); updateSql.append("UPDATE ").append(SyncUtil.getDbTableName(dbMapping)).append(" SET "); List> values = new ArrayList<>(); + boolean hasMatched = false; for (String srcColumnName : old.keySet()) { List targetColumnNames = new ArrayList<>(); columnsMap.forEach((targetColumn, srcColumn) -> { - if (srcColumnName.toLowerCase().equals(srcColumn)) { + if (srcColumnName.toLowerCase().equals(srcColumn.toLowerCase())) { targetColumnNames.add(targetColumn); } }); if (!targetColumnNames.isEmpty()) { - + hasMatched = true; for (String targetColumnName : targetColumnNames) { updateSql.append(targetColumnName).append("=?, "); Integer type = ctype.get(Util.cleanColumn(targetColumnName).toLowerCase()); @@ -315,6 +316,10 @@ public class RdbSyncService { } } } + if (!hasMatched) { + logger.warn("Did not matched any columns to update "); + return; + } int len = updateSql.length(); updateSql.delete(len - 2, len).append(" WHERE ");