使用sequelizejs的bulkCreate设置问题
发布于 7 年前 作者 kylezhang 7832 次浏览 来自 问答

现象:

使用sequelizebulkCreate函数,默认翻译过来部分代码如下(本次主要发问的地方), 如果需要插入的数据已经存在,则直接更新替换相应的字段, 如:ON DUPLICATE KEY UPDATE `c`=VALUES(`c`);

问题

现在想当需要插入的数据存在要更新时,不要直接更新,而是把原来的值加上再更新, 如何实现这种:ON DUPLICATE KEY UPDATE `c`=`c` + VALUES(`c`); 也就是在sequelizebulkCreate函数中使用increment.

5 回复

这种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 UPDATEc=c+ VALUES(c);

你在同一个事务上处理掉 在updateOnDuplicate的时候实现 累加的效果就好了

回到顶部