1. 程式人生 > 資料庫 >mysql儲存過程的使用案例

mysql儲存過程的使用案例

迴圈插入資料

1.建立儲存過程

CREATE DEFINER=`social`@`%` PROCEDURE `inser_gift_coupon`(IN in_number INT,IN in_user_id BIGINT)
BEGIN
DECLARE count INT default 0;
DECLARE sum INT default 0;
    WHILE count < in_number DO
    INSERT INTO `social_db`.`gift_coupon` ( `user_id`, `gift_coupon_id`, `life`, `create_time` )
    VALUES
        (in_user_id, 'T001', 3162240000, now()),
        (in_user_id, 'T002', 3162240000, now());

SET sum = sum + count;
SET count = count + 1;
END WHILE;
select sum;

END

引數說明 

in_number 要插入多少條
in_user_id 使用者ID

檢視儲存過程
show procedure status;
 

2. mybatis呼叫

<select id="batchAddGiftCoupon" statementType="CALLABLE" resultType="java.lang.Integer">
        {call inser_gift_coupon(#{inNumber,mode=IN,jdbcType=INTEGER},#{inUserId,mode=IN,jdbcType=BIGINT})}
</select>
int batchAddGiftCoupon(@Param("inNumber") Integer inNumber, @Param("inUserId") Long inUserId);