• mysql通过存储过程批量造数据


    相信大家有的时候测sql性能的时候需要批量造数据,一条条插入插入插到累死也不可能插完,所以现在存储过程就可以帮我们大忙了:

    创建表的结构sql语句:

    CREATE TABLE `recon_trade_auth_order` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
      `trade_order_no` varchar(30) NOT NULL COMMENT '交易认证订单号',
      `mer_order_no` varchar(64) NOT NULL COMMENT '商户交易认证订单号',
      `mer_no` varchar(64) DEFAULT NULL COMMENT '商户号',
      `mer_name` varchar(64) DEFAULT NULL COMMENT '商户名称',
      `pro_no` varchar(32) DEFAULT NULL COMMENT '产品编码',
      `pro_name` varchar(64) DEFAULT NULL COMMENT '产品名称',
      `order_time` datetime DEFAULT NULL COMMENT '交易时间',
      `auth_status` tinyint(4) DEFAULT NULL COMMENT '认证状态(1:待认证,2:认证成功,3:认证失败,4:认证未知)',
      `fee_amt` decimal(16,4) DEFAULT NULL COMMENT '费用金额',
      `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
      `extend1` varchar(255) DEFAULT NULL COMMENT '扩展字段1',
      `extend2` varchar(255) DEFAULT NULL COMMENT '扩展字段2',
      `extend3` varchar(255) DEFAULT NULL COMMENT '扩展字段3',
      PRIMARY KEY (`id`),
      UNIQUE KEY `unique_index_1` (`trade_order_no`),
      KEY `index_select_2` (`mer_no`,`pro_no`,`auth_status`),
      KEY `index_select_3` (`mer_order_no`),
      KEY `index_select_4` (`order_time`)
    ) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8 COMMENT='认证类交易订单信息';

    接下来我就需要写造数据的存储过程以及调用存储过程的sql:

    delimiter //
    DROP PROCEDURE IF EXISTS proc_buildata; 
    
    CREATE PROCEDURE proc_buildata(IN loop_times INT)  
    BEGIN  
    DECLARE var INT DEFAULT 100;   
    WHILE var<loop_times DO  
    SET var=var+1;  
    INSERT INTO recon_trade_auth_order (
     `id`,
        `trade_order_no`,
        `mer_order_no`,
        `mer_no`,
        `mer_name`,
        `pro_no`,
        `pro_name`,
        `order_time`,
        `auth_status`,
        `fee_amt`,
        `create_time`,
        `update_time`,
        `extend1`,
        `extend2`,
        `extend3`
    ) VALUES (
            var,
            var+1,
            'yhsy0011',
            'C1100003050700000004',
            '测试商户',
            'P0100000000010',
            '借记卡四要素认证',
            '2017-7-19 15:23:26',
            2,
            NULL,
            '2017-7-5 16:08:00',
            '2017-7-5 16:08:00',
            NULL,
            NULL,
            NULL
    );
    END WHILE;  
    END  //
    delimiter; 
    
    CALL proc_buildata(100000); 
  • 相关阅读:
    二叉树基本操作(二)
    二叉树基本操作(一)
    数组的方式实现--栈 数制转换
    数据的插入与删除
    链表 创建 插入 删除 查找 合并
    ACM3 求最值
    ACM2 斐波那契数列
    ACM_1 大数求和
    简单二维码生成及解码代码:
    ORM中去除反射,添加Expression
  • 原文地址:https://www.cnblogs.com/sailormoon/p/7240685.html
Copyright © 2020-2023  润新知