Torwang
Torwang
现在的实现方式: ```go sql, args := sqlbuilder.NewInsertBuilder(). InsertInto(quoteField(c.Task.Tablename)). Cols(columns...). Values(values...). Build() sql = fmt.Sprintf("%s ON DUPLICATE KEY UPDATE %s = %v", sql, fieldname, interface{}) ``` >毕竟一般 update 后面跟的表达式里面也没什么值得 escape 东西 可能存在两个问题:...
补充采集场景: |instance| attr_1 | attr_2| attr_3| | --------| --| --| --| |ins_1| 3 | 29 | 100| 其中, instance 是唯一标识, attr 来自不同的数据源. ---- 需要 `ON DUPLICATE KEY UPDATE`
>一种可能性是扩展 InsertBuilder#SQL() 方法的能力 持保留态度, SQL() 提供了过度的灵活性 ---- 大致浏览了三种数据库文档(只熟悉 MYSQL, 其它两种仅读过文档), 有些想法: 1. API 可以提供 `ON CONFLICT IGNORE` 和 `ON CONFLICT SET`; 2. 数据库特有的语法, 通过 flavor 提供; (其实, 我想表达 : 按场景提供...