mcy 6 년 전
부모
커밋
739f3b4fa1
1개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 7 2
      client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbSyncService.java

+ 7 - 2
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<Map<String, ?>> values = new ArrayList<>();
+        boolean hasMatched = false;
         for (String srcColumnName : old.keySet()) {
             List<String> 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 ");