diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbEtlService.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbEtlService.java index d1a511bd..a939a037 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbEtlService.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbEtlService.java @@ -58,6 +58,7 @@ public class RdbEtlService extends AbstractEtlService { Map columnsMap = new LinkedHashMap<>(); Map columnType = new LinkedHashMap<>(); DruidDataSource dataSource = (DruidDataSource) srcDS; + String backtick = SyncUtil.getBacktickByDbType(dataSource.getDbType()); Util.sqlRS(targetDS, "SELECT * FROM " + SyncUtil.getDbTableName(dbMapping, dataSource.getDbType()) + " LIMIT 1 ", @@ -90,8 +91,10 @@ public class RdbEtlService extends AbstractEtlService { insertSql.append("INSERT INTO ") .append(SyncUtil.getDbTableName(dbMapping, dataSource.getDbType())) .append(" ("); - columnsMap - .forEach((targetColumnName, srcColumnName) -> insertSql.append(targetColumnName).append(",")); + columnsMap.forEach((targetColumnName, srcColumnName) -> insertSql.append(backtick) + .append(targetColumnName) + .append(backtick) + .append(",")); int len = insertSql.length(); insertSql.delete(len - 1, len).append(") VALUES ("); @@ -101,6 +104,7 @@ public class RdbEtlService extends AbstractEtlService { } len = insertSql.length(); insertSql.delete(len - 1, len).append(")"); + logger.info("executeSqlImport sql:{}",insertSql.toString()); try (Connection connTarget = targetDS.getConnection(); PreparedStatement pstmt = connTarget.prepareStatement(insertSql.toString())) { connTarget.setAutoCommit(false); diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/support/SyncUtil.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/support/SyncUtil.java index c5fb4d5b..06fdf988 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/support/SyncUtil.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/support/SyncUtil.java @@ -281,6 +281,7 @@ public class SyncUtil { // 只有当dbType为MySQL/MariaDB或OceanBase时返回反引号 switch (dbType) { case mysql: + return "`"; case mariadb: case oceanbase: return "`";