【MySql】sql函数实现 添加/修改购物车 没有记录则insert 有则update (性能好坏未测试)

做demo临时遇到 添加/修改购物车 ,某人购物车中没有这个商品记录时insert一条,有记录则update个数。

由于比较懒,select 后再判断 insert 还是update 比较不符合我这样活泼的性格。

 于是Mybatis中出了这一条,


临时用到sql 网上找了模板后改来用,

结构别人写的,临时帮忙,表不大所以没考虑性能好坏,这点遗憾。

表结构:


代码:

<!-- 添加/修改购物车,没有则insert 有则update  map属性 product_num,user_name,trolley_num -->
DROP PROCEDURE IF EXISTS temp;
DELIMITER //
CREATE PROCEDURE temp()
BEGIN
   DECLARE num int DEFAULT 0;
   DECLARE vid int DEFAULT 0;
    
   SELECT count(*),T.product_num INTO num,vid FROM shop_trolley T WHERE trolley_id=223 ;
    
   IF num=0 THEN 
      INSERT INTO shop_trolley VALUES (223,400,222,12);
   ELSE
      UPDATE shop_trolley SET trolley_num=trolley_num+12 WHERE product_num=vid;
   END IF;
END
//
DELIMITER ;
call temp();

别说扔到MaBatis xml文件里也能运行,至于sql内判断快还是写成service快,没测试过,但感觉内部处理应该会比外部处理快。未测,不敢下定论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值