CNode

使用sequelizejs的bulkCreate设置问题

问答
Kkylezhang发布于9 年前最后回复9 年前5 回复8535 浏览0 收藏

现象:

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

问题

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

查看回复

回复 (5)

K
kylezhang#1·9 年前

@Matrixbirds 嗯嗯,就是不想混合写。。。

K
kylezhang#2·9 年前

@x-cold 这个我知道,我还想在这个的基础上,实现ON DUPLICATE KEY UPDATE c=c + VALUES(c);

X
x-cold#3·9 年前

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

M
Matrixbirds#4·9 年前

这种orm不提供的东西 只能用sql或者你写一个方法做

X
x-cold#5·9 年前

文档有相关的说明: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.

参与回复
登录后即可参与回复。登录