现象:
使用sequelize
的bulkCreate
函数,默认翻译过来部分代码如下(本次主要发问的地方),
如果需要插入的数据已经存在,则直接更新替换相应的字段,
如:ON DUPLICATE KEY UPDATE `c`=VALUES(`c`);
问题
现在想当需要插入的数据存在要更新时,不要直接更新,而是把原来的值加上再更新,
如何实现这种:ON DUPLICATE KEY UPDATE `c`=`c` + VALUES(`c`);
也就是在sequelize
的bulkCreate
函数中使用increment
.
这种orm不提供的东西 只能用sql或者你写一个方法做
文档有相关的说明:http://docs.sequelizejs.com/class/lib/model.js~Model.html#static-method-bulkCreate
options.updateOnDuplicate Array optional Fields to update if row key already exists (on duplicate key update)? (only supported by mysql). By default, all fields are updated.
@Matrixbirds 嗯嗯,就是不想混合写。。。
@x-cold 这个我知道,我还想在这个的基础上,实现ON DUPLICATE KEY UPDATE
c=
c+ VALUES(
c);
你在同一个事务上处理掉 在updateOnDuplicate的时候实现 累加的效果就好了