sequelize批量新增如何避免重复

 if (arr.length > 0) {
      const arrList = [];
      arr.forEach(item => {
        const send = {
          actname: item.act_name, sid: item.sid, ordertitle: item.order_title, pubid: item.pub_id, jtksharerate: item.jtk_share_fee * 0.8, jtksharefee: item.jtk_share_fee, orderprice: item.order_price, payprice: item.pay_price, status: item.status, statusdesc: item.status_desc,
          subsharerate: item.sub_share_rate, subsharefee: item.sub_share_fee, extension: item.extension, ordersn: item.order_sn, pay_time: item.pay_time, modified_time: item.modified_time,

        };
        arrList.push(send);
      });
      // console.log(arrList, 2222);
      const dataList = await this.app.model.Order.bulkCreate(arrList, { updateOnDuplicate: ['actname', 'sid', 'ordertitle', 'pubid', 'jtksharerate', 'jtksharefee', 'orderprice', 'payprice', 'status', 'statusdesc', 'subsharerate', 'subsharefee', 'extension', 'ordersn', 'pay_time', 'modified_time'] });
      // const dataList = await this.app.model.Order.bulkCreate(arrList, { updateOnDuplicate: arrList });
      console.log(dataList, 666);
    }
       ordersn: {
        type: STRING(100),
        allowNull: false,
        defaultValue: '',
        comment: '订单号',
        unique: true,
      },



let params = [{"name": "张三", "age": 21},{"name": "小李", "age": 20}];

let where = ["张三","小李"];
let ParamsFind = await model.findAll({ //批量查询数据
    attributes:['name','age'],
    where:{
        name:{
            [Op.in]: where
        }
    }
})

for(let item of ParamsFind){ //查到的sql
    for (var i = params .length - 1; i >= 0; i--) { //过滤的数组
        if(params[i].name== item.dataValues.name) {
            params.splice(i, 1);
        }
    }
}
let data = await model.bulkCreate(params);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叮咚前端

你的鼓励是我们的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值