public String buildUpsertStatement()

in storage-jdbc/src/main/java/org/apache/rocketmq/schema/registry/storage/jdbc/dialect/mysql/MysqlDatabaseDialect.java [41:64]


    public String buildUpsertStatement(TableId tableId, Collection<String> fields) {
        final ExpressionBuilder.Transform<String> transform = (builder, col) -> {
            builder.appendColumnName(col);
            builder.append("=values(");
            builder.appendColumnName(col);
            builder.append(")");
        };
        ExpressionBuilder builder = expressionBuilder();
        builder.append("insert into ");
        builder.append(tableId);
        builder.append("(");
        builder.appendList()
                .delimitedBy(",")
                .transformedBy(ExpressionBuilder.columnNames())
                .of(fields);
        builder.append(") values(");
        builder.appendMultiple(",", "?", fields.size());
        builder.append(") on duplicate key update ");
        builder.appendList()
                .delimitedBy(",")
                .transformedBy(transform)
                .of(fields);
        return builder.toString();
    }