• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux 下mysql通过存储过程实现批量生成记录

    Linux 下mysql通过存储过程实现批量生成记录

    在开发中有一个这样的需求:需要在数据库的表中生成大量的记录,这些记录只有很少的差别,只会在创建表的时候进行一次这个操作。当然,要是人工一条一条的做也不是不可以,也可以用外部的程序来完成,但是这里我选择使用mysql的存储过程来实现。

    0、相关版本信息

            mysql使用官方打包发布的5.6.29版本,安装在linux上

    1、数据表结构

            表有一个自增的主键,另外有一个字段是需要保存的有少许差异的信息,另外有一个字段是其他信息,创建表的代码:

    DROP TABLE IF EXISTS `t_vpn_ip`;
    CREATE TABLE `t_vpn_ip` (
      `r_id`       int(16)     NOT NULL  AUTO_INCREMENT,
      `ipaddr`      varchar(16)   NOT NULL  UNIQUE,
      `cc_id`       int(16)     NOT NULL  DEFAULT 0,
      PRIMARY KEY (`r_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    

    2、存储过程的创建、调用、删除

            存储过程中使用循环来生成大量的记录。由于这个生成操作只执行一次,所以在调用后就将其删除。

    /**
     * 实现对VPN地值使用情况表的填充
     * 172.16.0.1--172.16.255.254
     */
    DROP PROCEDURE IF EXISTS `vpn_addr_fill`;
    DELIMITER ;;
    CREATE PROCEDURE `vpn_addr_fill`()
    BEGIN
      declare i int;
      declare j int;
      SET i=0;
      WHILE i=255 DO
        SET j=1;
        WHILE j255 DO
          INSERT INTO t_vpn_ip(ipaddr) VALUES(concat("172.16.",i,".",j));
          SET j = j + 1;
        END WHILE;
        SET i = i + 1;
      END WHILE;
    END
    ;;
    DELIMITER ;
    
    /**
     * 填充数据
     */
    call vpn_addr_fill();
    
    /**
     * “功成身退”,删除存储过程
     */
    DROP PROCEDURE IF EXISTS `vpn_addr_fill`;
    
    

    3、说明

            这里生成的记录根据实际情况调整,调用存储过程后根据具体的情况决定是否需要删除存储过程。

    感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    您可能感兴趣的文章:
    • mysql生成指定位数的随机数及批量生成随机数的方法
    • mysql 动态生成测试数据
    • mysql生成随机字符串函数分享
    • MySQL中随机生成固定长度字符串的方法
    • 在MySQL中生成随机密码的方法
    • Mysql全局ID生成方法
    • Mysql的语句生成后门木马的方法
    • 如何批量生成MySQL不重复手机号大表实例代码
    上一篇:linux系统安装字体详细介绍
    下一篇:查看linux中某个端口(port)是否被占用的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux 下mysql通过存储过程实现批量生成记录 Linux,下,mysql,通过,存储,