2019-07-25 记录一个bug,插入更新sql-ON DUPLICATE KEY UPDATE

以前没写过ON DUPLICATE KEY UPDATE,写了一个插入更新,写错了,把ON DUPLICATE KEY UPDATE写在for循环里,也没写values,不知道为啥之前没测试出来,赶紧记录一下

错误:

  <foreach collection="list" index="index" item="item" separator=",">
            ( #{item.groupNum},#{item.organizeId}, #{item.taxTime}, #{item.periodTax}, #{item.invoicePeriodTax},
            #{item.purchaseTaxDeduction}, #{item.taxDeductionForPurchaseTax}, #{item.vatDeclaration}, #{item.purchaseTaxCurrentAmount},
            #{item.gmtCreate}, #{item.gmtModified} )
            ON DUPLICATE KEY UPDATE period_tax = #{item.periodTax}, invoice_period_tax = #{item.invoicePeriodTax},
            purchase_tax_deduction = #{item.purchaseTaxDeduction}, tax_deduction_for_purchase_tax = #{item.taxDeductionForPurchaseTax},
            vat_declaration = #{item.vatDeclaration},
            purchase_tax_current_amount = #{item.purchaseTaxCurrentAmount};
        </foreach>

错误点:第一,不应该写在for循环里,第二没写values,第三等于后是写表字段

正确:

 <foreach collection="list" index="index" item="item" separator=",">
            ( #{item.groupNum},#{item.organizeId}, #{item.taxTime}, #{item.periodTax}, #{item.invoicePeriodTax},
            #{item.purchaseTaxDeduction}, #{item.taxDeductionForPurchaseTax}, #{item.vatDeclaration}, #{item.purchaseTaxCurrentAmount},
            #{item.gmtCreate}, #{item.gmtModified} )
        </foreach>
        ON DUPLICATE KEY UPDATE
        period_tax = VALUES (period_tax), invoice_period_tax = VALUES (invoice_period_tax),
        purchase_tax_deduction = VALUES (purchase_tax_deduction), tax_deduction_for_purchase_tax = VALUES (tax_deduction_for_purchase_tax),
        vat_declaration = VALUES (vat_declaration),
        purchase_tax_current_amount = VALUES (purchase_tax_current_amount);
period_tax = VALUES (period_tax), 

这种格式的,参考:https://www.cnblogs.com/zjdxr-up/p/8319982.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值