mysql存储过程

1.建表

CREATE TABLE test (
 id BIGINT (20) NOT NULL auto_increment COMMENT 'id',
 order_id BIGINT (20) NOT NULL COMMENT '订单ID',
 user_id BIGINT (64) NOT NULL COMMENT '用户编号',
 STATUS CHAR (1) NOT NULL COMMENT '状态(0交易成功 1交易失败)',
 order_no VARCHAR (64) DEFAULT NULL COMMENT '订单流水',
 CREATE_date datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
 PRIMARY KEY (id)
) ENGINE = INNODB COMMENT = '订单信息表';
  1. 存过
-- 定义标识符为双斜杠
delimiter //  
-- 如果存在 my_procedure 存储过程则删除
DROP PROCEDURE IF EXISTS my_procedure ; 
-- 创建无参存储过程
CREATE PROCEDURE my_procedure () 
BEGIN

 -- 申明变量n
    DECLARE n INT DEFAULT 1 ; 
    set @execSql='insert into test (id,order_id,user_id,STATUS,order_no)  values';
    set @execdata = '';

    WHILE n <= 1001 DO
        set @execdata=concat(@execdata,"(",n,',',n,',',n,',',0,','"'order_no'",")");

        if n%1000=0
        then
            set @execSql = concat(@execSql,@execdata,";");
            #select @execSql;
            prepare stmt from @execSql;
            execute stmt;
            DEALLOCATE prepare stmt;
            commit;

            set @execSql='insert into test (id,order_id,`user_id`,`STATUS`,`order_no`)  values';
            set @execdata = '';
        ELSE
            set @execdata = concat(@execdata,',');
        end if;
  -- 循环一次,i加一
        SET n = n + 1 ; 
    END WHILE ; 
 -- 结束while循环
   
END
//             
delimiter ;

 -- 调用存储过程
call my_procedure();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值