carlyin0801 opened a new issue #13423: URL: https://github.com/apache/shardingsphere/issues/13423
**The shardingsphere version is 5.0.0.beta,database is mysql.** **shardingsphere does not report errors:** 2021-11-03 10:45:38.836|biz-e3424a198605469bb31139f9767fe21b||SQLLogger.java|74|INFO||||||[XNIO-1 task-1] Logic SQL: insert into `t_pipeline_info` (`PIPELINE_ID`, `PROJECT_ID`, `PIPELINE_NAME`, `PIPELINE_DESC`) values (?, ?, ?, ?) on duplicate key update `t_pipeline_info`.`PIPELINE_DESC` = ? 2021-11-03 10:45:38.837|biz-e3424a198605469bb31139f9767fe21b||SQLLogger.java|74|INFO||||||[XNIO-1 task-1] SQLStatement: MySQLInsertStatement(setAssignment=Optional.empty, onDuplicateKeyColumns=Optional[org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.OnDuplicateKeyColumnsSegment@7b11b60e]) 2021-11-03 10:45:38.838|biz-e3424a198605469bb31139f9767fe21b||SQLLogger.java|74|INFO||||||[XNIO-1 task-1] Actual SQL: ds_0 ::: insert into `t_pipeline_info` (`PIPELINE_ID`, `PROJECT_ID`, `PIPELINE_NAME`, `PIPELINE_DESC`) values (?, ?, ?, ?) on duplicate key update `t_pipeline_info`.`PIPELINE_DESC` = ? ::: [p-17bd8ac584be4d228c9ad2d15e9d169117bd8ac584be4d228c9ad2d15e9d169117bd8ac584be4d228c9ad2d15e9d1691, devops-test, bnmvvv1234, dfdf89089808, dfdf89089808] **Native SQL directly inserts an error**  My configuration is as follows: private fun dataSourceMap(config: DataSourceProperties): Map<String, DataSource> { val dataSourceMap: MutableMap<String, DataSource> = mutableMapOf() val dataSourceConfigs = config.dataSourceConfigs dataSourceConfigs.forEachIndexed { index, dataSourceConfig -> val dataSourceName = "$DATA_SOURCE_NAME_PREFIX$index" dataSourceMap[dataSourceName] = createHikariDataSource( datasourcePoolName = dataSourceName, datasourceUrl = dataSourceConfig.url, datasourceUsername = dataSourceConfig.username, datasourcePassword = dataSourceConfig.password, datasourceInitSql = dataSourceConfig.initSql, datasouceLeakDetectionThreshold = dataSourceConfig.leakDetectionThreshold ) } return dataSourceMap } private fun createHikariDataSource( datasourcePoolName: String, datasourceUrl: String, datasourceUsername: String, datasourcePassword: String, datasourceInitSql: String?, datasouceLeakDetectionThreshold: Long ): HikariDataSource { return HikariDataSource().apply { poolName = datasourcePoolName jdbcUrl = datasourceUrl username = datasourceUsername password = datasourcePassword driverClassName = Driver::class.java.name minimumIdle = 10 maximumPoolSize = 50 idleTimeout = 60000 connectionInitSql = datasourceInitSql leakDetectionThreshold = datasouceLeakDetectionThreshold } } @Bean fun shardingDataSource(config: DataSourceProperties): DataSource { val shardingRuleConfig = ShardingRuleConfiguration() // 设置表的路由规则 val tableRuleConfigs = shardingRuleConfig.tables val dataSourceSize = config.dataSourceConfigs.size tableRuleConfigs.add(getTableRuleConfiguration("t_pipeline_info", dataSourceSize)) tableRuleConfigs.add(getTableRuleConfiguration("t_pipeline_user", dataSourceSize)) val dbShardingAlgorithmrProps = Properties() dbShardingAlgorithmrProps.setProperty("strategy", "STANDARD") dbShardingAlgorithmrProps.setProperty("algorithmClassName", "com.tencent.devops.sharding.configuration.BkDatabaseShardingAlgorithm") shardingRuleConfig.shardingAlgorithms["bkDatabaseShardingAlgorithm"] = ShardingSphereAlgorithmConfiguration("CLASS_BASED", dbShardingAlgorithmrProps) shardingRuleConfig.defaultTableShardingStrategy = NoneShardingStrategyConfiguration() shardingRuleConfig.defaultDatabaseShardingStrategy = StandardShardingStrategyConfiguration(PROJECT_ID_FIELD, "bkProcessDatabaseShardingAlgorithm") val properties = Properties() // 是否打印SQL解析和改写日志 properties.setProperty("sql-show", "true") return ShardingSphereDataSourceFactory.createDataSource( dataSourceMap(config), listOf(shardingRuleConfig), properties ) } fun getTableRuleConfiguration( tableName: String, dataSourceSize: Int, specifyDataSourceName: String? = null ): ShardingTableRuleConfiguration? { // 生成实际节点规则 val actualDataNodes = if (specifyDataSourceName != null) { "$specifyDataSourceName.$tableName" } else { val lastIndex = dataSourceSize - 1 "$DATA_SOURCE_NAME_PREFIX\${0..$lastIndex}.$tableName" } val tableRuleConfig = ShardingTableRuleConfiguration(tableName, actualDataNodes) tableRuleConfig.tableShardingStrategy = NoneShardingStrategyConfiguration() tableRuleConfig.databaseShardingStrategy = StandardShardingStrategyConfiguration(PROJECT_ID_FIELD, "bkDatabaseShardingAlgorithm") return tableRuleConfig } -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
