1.检查是否开启二进制日志

#查看是否开启二进制日志,ON表示开启,OFF表示没有开启

show variables like‘log_bin_trust_function_creators‘;

#若没有开启,则开启二进制日志

set global log_bin_trust_function_creators=1;

2.创建函数

随机产生字符串

#将结束符改为$$

DELIMITER $$

CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(255)

BEGIN

DECLARE chars_str VARCHAR(100) DEFAULT ‘abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ‘;

DECLARE return_str VARCHAR(255) DEFAULT ‘‘;

DECLARE i INT DEFAULT0;

WHILE i

SET return_str=CONCAT(return_str,SUBSTRING(chars_str,FLOOR(1+RAND()*52),1));

SET i= i + 1;

END WHILE;

RETURN return_str;

END $$

CONCAT: 连接两个或多个字符串值从而组成一个新的字符串。如果任一参数为NULL时,则跳过该参数。

SUBSTRING: 从字符串中提取子字符串。

SUBSTRING(string,position);

string代表要提取的字符串

position代表提取位置,

如果position参数为正数,表示提取从该位置(包含)之后的字符串

如果position参数为零,则SUBSTRING函数返回一个空字符串

如果position参数为负数,表示截取从后往前数的个数

?

示例:string=123456SUBSTRING(string,1);//123456

SUBSTRING(string,-2);//56

?

?

SUBSTRING(string,position,length);

position表示起始位置

length表示截取长度

FLOOR函数:向下取整

RAND函数: 可以在0和1之间产生一个随机数

RAND()*52的范围是(0,52)1+RAND()*52的范围是(1,53)

FLOOR(1+RAND()*52)的范围是[1,52]

3.创建存储过程

#执行存储过程,往dept表添加随机数据

DELIMITER $$

CREATE PROCEDURE insert_dept(IN START INT(10),IN max_num INT(10))

BEGIN

DECLARE i INT DEFAULT0;

SET autocommit= 0;

REPEAT

SET i= i + 1;

INSERT INTO dept (deptno ,dname,loc ) VALUES ((START+i) ,rand_string(10),rand_string(8));

UNTIL i=max_num

END REPEAT;

COMMIT;

END $$

4.调用存储过程进行插入数据

DELIMITER ;

#执行存储过程,往dept表添加50万条数据

DELIMITER ;

CALL insert_dept(100001,500000);

mysql利用存储过程插入大量数据脚本

标签:cat   war   max   bin   procedure   ret   空字符串   bsp   int

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/flyandling/p/12969761.html

mysql 存储过程 脚本_mysql利用存储过程插入大量数据脚本相关推荐

  1. 完整MySQL入门指令练习,有插入表格数据

    完整MySQL入门指令练习,有插入表格数据 欢迎关注微.信公众号:软件集合 // 完整MySQL入门训练,有插入数据 -- <01 mysql数据库的操作> -- 连接数据库mysql - ...

  2. mysql 存储过程 队列_mysql使用存储过程函数实现批量插入

    写这边文章的目的,是想结合mysql 存储过程+函数完成一个批量删除的功能吧...正好也好加深下对procedure和function的熟练操作吧... 废话不多说,我就直接上表结构啦哈,如下: cr ...

  3. mysql 存储过程查询优化_mysql用存储过程插入百万条数据, 及查询优化

    查看所有存储过程: show procedure status; 查看详细存储过程 ptest: show create procedure ptest; 存储过程插入数据: create table ...

  4. mysql exec函数_mysql exec 存储过程

    MySql存储过程 create proc 名称 参数列表 as 代码段 exec 存储过程名称 参数列表 要点: 1.可以使用output修饰参数 2.可以使用默认值,注意需要将最后的参数设置成默认 ...

  5. mysql存储过程导出_Mysql导出存储过程

    在部署某学院的网站时,发现一个错误: FUNCTION config_get does not exist. 找到代码一看,是conn.prepareCall("{call config_g ...

  6. mysql 存储过程基础_MySQL基础-存储过程

    存储过程 定义:将一批为了完成特定功能的SQL语句集,根据传入的参数(也可没有),调用,完成单个sql语句更复杂的功能 存储过程思想很简单,就是SQL语句层面上的代码封装和重用 优点:1) 可封装,并 ...

  7. mysql过程异常处理_mysql数据库存储过程异常处理

    14.1.4  定义条件和处理程序 定义条件和处理程序是事先定义程序执行过程中可能遇到的问题.并且可以在处理程序中定义解决这些问题的办法.这种方式可以提前预测可能出现的问题, 并提出解决办法.这样可以 ...

  8. oracle 存储过程drop table,利用存储过程实现Oracle的droptableifexists-Oracle

    利用存储过程实现 Oracle的droptableifexists,在Mysql中可以使用[drop table if exists tab_name]来实现目标表的无报错删除,但在Oracle中不支 ...

  9. mysql 整理碎片_mysql 如何去整理表数据,碎片整理

    展开全部 MySQL 的碎片是 MySQL 运维过程中比较常见的问题,碎片的62616964757a686964616fe59b9ee7ad9431333433643731存在十分影响数据库的性能,本 ...

最新文章

  1. html指定表格行列书,js动态生成指定行数的表格
  2. 嵌入式java闹钟 实验报告_《Java程序设计》第五次实验实验报告
  3. Archlinux 下的 VMWare Workstation 维护笔记
  4. git fetch 和git pull 的差别
  5. 蛋疼的中文编码及其计算机编码历史
  6. POLYCOM RMX2000 激活与初始化 信令板卡初始化
  7. Java编程:树(实际应用)
  8. 第九章-安装RPM包或源码包
  9. vue 官方推荐的好用的三方库
  10. python酷q机器人_玩转PLEX 篇六:利用酷Q机器人远程控制服务器的方法
  11. 传世调试之-道士技能《解毒术》、《神光术》:无法正常升级。
  12. 最简明扼要的 Systemd 教程,只需十分钟
  13. 短视频查重机制及去重方法
  14. 安卓机 input file图片上传无反应解决方案
  15. [Swift]LeetCode334. 递增的三元子序列 | Increasing Triplet Subsequence
  16. 使用itext将base64转成图片合并为pdf
  17. Unity中如何给你的场景模型mesh减面——【一】
  18. 百度AI - 对接百度AI 增值税发票识别接口
  19. 大数据-你投的简历真的是你认为的工作么?
  20. 【API】调用微软语音服务

热门文章

  1. 个人管理 - Learn More,Study Less!
  2. JavaScriptjQuery.带参数的函数
  3. mysql 协议的processInfo命令包及解析
  4. pdftk — PDF万用命令行工具
  5. 关于SQL Server 存储过程的EXECUTE AS CALLER选项
  6. @ManyToOne和@OneToMany 注解
  7. Cards BZOJ 1004
  8. 大数据时代了解一些问题
  9. cesium+ geoserverTerrainProvide+png展示3D高程图展示
  10. Asset Store 下载的package存在什么地方?