DELIMITER $$ -- console ; 转换为 $$
create procedure 'seckill'.'execute_seckill'
( in v_seckill_id bigint , int v_phone bigint,
in v_seckill_time timestamp, out r_result int
)
BEGIN
DECLARE insert_count int DEFAULT 0;
--开启事务
START TRANSACTION;
insert ignore into success_seckill
(seckill_id,user_phone,create_time)
values(v_seckill_id,v_phone,v_seckill_time)
select row_count into insert_count;
IF(insert_count = 0) THEN
ROLLBACK;
set r_result = -1;
ELSEIF (inset_count < 0) THEN
ROLLBACK;
SET r_result = -2;
ELSE
update success_seckill
set number = number -1
where seckill_id = v_seckill_id
and end_time > v_seckill_time
and begin_time < v_seckill_time
and number > 0
select row_count into insert_count;
IF(insert_count = 0)
ROLLBACK;
SET r_result = -1;
ELSEIF(insert_count < 0)
ROLLBACK;
SET
r_result = -2;
ELSE
COMMIT;
SET r_result= 1;
END IF;
END IF;
END;
$$
转载请注明原文地址: https://ju.6miu.com/read-6467.html