1
0
mcy 6 жил өмнө
parent
commit
739f3b4fa1

+ 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();
         StringBuilder updateSql = new StringBuilder();
         updateSql.append("UPDATE ").append(SyncUtil.getDbTableName(dbMapping)).append(" SET ");
         updateSql.append("UPDATE ").append(SyncUtil.getDbTableName(dbMapping)).append(" SET ");
         List<Map<String, ?>> values = new ArrayList<>();
         List<Map<String, ?>> values = new ArrayList<>();
+        boolean hasMatched = false;
         for (String srcColumnName : old.keySet()) {
         for (String srcColumnName : old.keySet()) {
             List<String> targetColumnNames = new ArrayList<>();
             List<String> targetColumnNames = new ArrayList<>();
             columnsMap.forEach((targetColumn, srcColumn) -> {
             columnsMap.forEach((targetColumn, srcColumn) -> {
-                if (srcColumnName.toLowerCase().equals(srcColumn)) {
+                if (srcColumnName.toLowerCase().equals(srcColumn.toLowerCase())) {
                     targetColumnNames.add(targetColumn);
                     targetColumnNames.add(targetColumn);
                 }
                 }
             });
             });
             if (!targetColumnNames.isEmpty()) {
             if (!targetColumnNames.isEmpty()) {
-
+                hasMatched = true;
                 for (String targetColumnName : targetColumnNames) {
                 for (String targetColumnName : targetColumnNames) {
                     updateSql.append(targetColumnName).append("=?, ");
                     updateSql.append(targetColumnName).append("=?, ");
                     Integer type = ctype.get(Util.cleanColumn(targetColumnName).toLowerCase());
                     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();
         int len = updateSql.length();
         updateSql.delete(len - 2, len).append(" WHERE ");
         updateSql.delete(len - 2, len).append(" WHERE ");