mysql update 加if_MYSQL INSERT或UPDATE IF

首先,在名称,条形码,项目,位置和价格上添加UNIQUE约束.

ALTER TABLE tableX

ADD CONSTRAINT tableX_UQ

UNIQUE (name, barcode, item, location, price) ;

然后你可以使用INSERT INTO … ON DUPLICATE KEY UPDATE:

INSERT INTO tableX

(name, barcode, item, location, price, quantity, date)

VALUES

(?, ?, ?, ?, ?, ?, ?)

ON DUPLICATE KEY UPDATE

quantity = CASE WHEN VALUES(date) > date

THEN quantity + VALUES(quantity) -- add quantity

ELSE quantity -- or leave as it is

END

, date = CASE WHEN VALUES(date) > date

THEN VALUES(date) ; -- set date to new date

ELSE date -- or leave as it is

END

也可以使用REPLACE,但行为存在差异(如果你有外键,这尤其重要).有关详细信息,请参阅此问题“INSERT IGNORE” vs “INSERT … ON DUPLICATE KEY UPDATE”和@Bill Kawin的答案,其中讨论了INSERT IGNORE,INSERT … ON DUPLICATE KEY和REPLACE之间的区别.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值