浏览代码

fixed issue #507

agapple 7 年之前
父节点
当前提交
edc2fbe1dc

+ 4 - 5
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java

@@ -443,11 +443,10 @@ public class DatabaseTableMeta implements TableMetaTSDB {
                 return false;
             }
 
-            if (sourceField.isKey() != targetField.isKey()) {
-                return false;
-            }
-
-            if (sourceField.isUnique() != targetField.isUnique()) {
+            // mysql会有一种处理,针对show create只有uk没有pk时,会在desc默认将uk当做pk
+            boolean isSourcePkOrUk = sourceField.isKey() || sourceField.isUnique();
+            boolean isTargetPkOrUk = targetField.isKey() || targetField.isUnique();
+            if (isSourcePkOrUk != isTargetPkOrUk) {
                 return false;
             }
         }