mysql 存储过程 脚本_mysql利用存储过程插入大量数据脚本
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利用存储过程插入大量数据脚本相关推荐
- 完整MySQL入门指令练习,有插入表格数据
完整MySQL入门指令练习,有插入表格数据 欢迎关注微.信公众号:软件集合 // 完整MySQL入门训练,有插入数据 -- <01 mysql数据库的操作> -- 连接数据库mysql - ...
- mysql 存储过程 队列_mysql使用存储过程函数实现批量插入
写这边文章的目的,是想结合mysql 存储过程+函数完成一个批量删除的功能吧...正好也好加深下对procedure和function的熟练操作吧... 废话不多说,我就直接上表结构啦哈,如下: cr ...
- mysql 存储过程查询优化_mysql用存储过程插入百万条数据, 及查询优化
查看所有存储过程: show procedure status; 查看详细存储过程 ptest: show create procedure ptest; 存储过程插入数据: create table ...
- mysql exec函数_mysql exec 存储过程
MySql存储过程 create proc 名称 参数列表 as 代码段 exec 存储过程名称 参数列表 要点: 1.可以使用output修饰参数 2.可以使用默认值,注意需要将最后的参数设置成默认 ...
- mysql存储过程导出_Mysql导出存储过程
在部署某学院的网站时,发现一个错误: FUNCTION config_get does not exist. 找到代码一看,是conn.prepareCall("{call config_g ...
- mysql 存储过程基础_MySQL基础-存储过程
存储过程 定义:将一批为了完成特定功能的SQL语句集,根据传入的参数(也可没有),调用,完成单个sql语句更复杂的功能 存储过程思想很简单,就是SQL语句层面上的代码封装和重用 优点:1) 可封装,并 ...
- mysql过程异常处理_mysql数据库存储过程异常处理
14.1.4 定义条件和处理程序 定义条件和处理程序是事先定义程序执行过程中可能遇到的问题.并且可以在处理程序中定义解决这些问题的办法.这种方式可以提前预测可能出现的问题, 并提出解决办法.这样可以 ...
- oracle 存储过程drop table,利用存储过程实现Oracle的droptableifexists-Oracle
利用存储过程实现 Oracle的droptableifexists,在Mysql中可以使用[drop table if exists tab_name]来实现目标表的无报错删除,但在Oracle中不支 ...
- mysql 整理碎片_mysql 如何去整理表数据,碎片整理
展开全部 MySQL 的碎片是 MySQL 运维过程中比较常见的问题,碎片的62616964757a686964616fe59b9ee7ad9431333433643731存在十分影响数据库的性能,本 ...
最新文章
- html指定表格行列书,js动态生成指定行数的表格
- 嵌入式java闹钟 实验报告_《Java程序设计》第五次实验实验报告
- Archlinux 下的 VMWare Workstation 维护笔记
- git fetch 和git pull 的差别
- 蛋疼的中文编码及其计算机编码历史
- POLYCOM RMX2000 激活与初始化 信令板卡初始化
- Java编程:树(实际应用)
- 第九章-安装RPM包或源码包
- vue 官方推荐的好用的三方库
- python酷q机器人_玩转PLEX 篇六:利用酷Q机器人远程控制服务器的方法
- 传世调试之-道士技能《解毒术》、《神光术》:无法正常升级。
- 最简明扼要的 Systemd 教程,只需十分钟
- 短视频查重机制及去重方法
- 安卓机 input file图片上传无反应解决方案
- [Swift]LeetCode334. 递增的三元子序列 | Increasing Triplet Subsequence
- 使用itext将base64转成图片合并为pdf
- Unity中如何给你的场景模型mesh减面——【一】
- 百度AI - 对接百度AI 增值税发票识别接口
- 大数据-你投的简历真的是你认为的工作么?
- 【API】调用微软语音服务
热门文章
- 个人管理 - Learn More,Study Less!
- JavaScriptjQuery.带参数的函数
- mysql 协议的processInfo命令包及解析
- pdftk — PDF万用命令行工具
- 关于SQL Server 存储过程的EXECUTE AS CALLER选项
- @ManyToOne和@OneToMany 注解
- Cards BZOJ 1004
- 大数据时代了解一些问题
- cesium+ geoserverTerrainProvide+png展示3D高程图展示
- Asset Store 下载的package存在什么地方?