您的位置:首页 > 数据库 > MySQL

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

2017-10-08 01:19 483 查看
做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快,没测试过,但感觉内部处理应该会比外部处理快。未测,不敢下定论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: