MySQL随机字符串函数批量插入数据
简单举个例子:
drop table if exists demo1 create table demo1
(
id int primary key auto_increment,
name varchar(50)
)
desc demo1 -- 随机字符串函数用于插入数据
drop function if exists rand_str; delimiter //
create function rand_str(size int,type int)
returns varchar(255)
begin
declare seed varchar(255) ;
declare seed_num varchar(255) default '';
declare seed_str varchar(255) default 'qwertryuiopasdfghjklzxcvbnm';
declare ret varchar(255) default '';
declare i int default 0;
-- 为seed 赋值 首先判断类型需要得到的是数字
-- 还是字符串0为数字 1为字符串
-- 都不是的话那则拼接数字与字符串 concat();
set seed = case type
when 0 then seed_num
when 1 then seed_str
else concat(seed_num,seed_str) end;
-- 循环拼接字符串 随机得到的数字之后截取字符串
-- 循环一次则截取一个 条件小于参数size
while i < size do
set ret = concat(ret, substring(seed, floor(length(seed) * rand() + 1), 1));
set i = i + 1;
end while;
-- 最后返回
return ret;
end //
delimiter ; -- 使用存储过程插入批量数据
drop procedure if exists pro_demo;
delimiter //
create procedure pro_demo( num int )
begin
-- 循环语句写法 while end while; repeat ..
set autocommit = 0;
set @i=0;
repeat
set @i=@i+1;
insert into demo1(name) values(rand_str(7,5));
until @i =num end repeat;
if @i % 10000 = 1
then commit; end if;
commit;
set autocommit = 1;
end //
delimiter ; --
set @num = 100000;
call pro_demo(@num);
select * from demo1
这里了解一下存储过程不建议使用
1、难以调试,难以维护
2、业务逻辑跟数据库耦合度过高,不便于迁移
3、对数据的压力过大,需要分拆
4、MySQL 对存储过程的支付有些弱鸡
MySQL随机字符串函数批量插入数据的更多相关文章
- 使用JDBC在MySQL数据库中快速批量插入数据
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch ...
- mysql随机字符串函数
drop function if exists rand_str; delimiter $$ ) charset 'utf8' begin # 定义接收初始化类型 ) ; # 定义初始化数字 ) '; ...
- MySQL高级知识(十)——批量插入数据脚本
前言:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用. 0.准备 #1.创建tb_dept_bigdata(部门表). create table tb_dept_bigdata( ...
- 向mysql中批量插入数据的性能分析
MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下 CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 5 ...
- mybatis foreach批量插入数据:Oracle与MySQL区别
mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分 ...
- MySQL批量插入数据的几种方法
最近公司要求测试数据库的性能,就上网查了一些批量插入数据的代码,发现有好几种不同的用法,插入同样数据的耗时也有区别 别的先不说,先上一段代码与君共享 方法一: package com.bigdata; ...
- MySQL:JDBC批量插入数据的效率
平时使用mysql插入.查询数据都没有注意过效率,今天在for循环中使用JDBC插入1000条数据居然等待了一会儿 就来探索一下JDBC的批量插入语句对效率的提高 首先进行建表 create tabl ...
- mysql应用存储过程批量插入数据
--批量插入数据的sql语句 delimiter $$ DROP PROCEDURE IF EXISTS `test.sp_insert_batch` $$ CREATE DEFINER =`root ...
- sqlserver存储过程批量插入数据
在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c ...
随机推荐
- DNS负载均衡与NGINX负载均衡策略
负载均衡是指的是把请求均匀的分摊到多个服务器上处理.一般常见的负载均衡有两种:①客户端与反向代理服务器之间的DNS负载均衡②反向代理服务器与应用服务器之间的负载均衡(这种负载均衡有很多,可以是webl ...
- datax部署
1.下载: https://github.com/alibaba/DataX Clone or download下载源码,拉到下面 Quick Start Download DataX下载地址 下载安 ...
- 记录一下Web开发环境搭建 Eclipse-Java EE 篇
转自https://www.cnblogs.com/yangyxd/articles/5615965.html Web开发环境搭建 Eclipse-Java EE 篇 [原创内容,转载注名出处] 1. ...
- 微信退款SpringBoot读取resource下的证书
微信支付退款接口,需要证书双向验证,测试的时候证书暂时放在resource下,上图 起初MyConfig中我是这样,在本机IDE中运行没有问题 但到Linux服务器的docker中运行就IO异常了,查 ...
- postConstruct执行过程
使用@PostConstruct注解修饰的方法会在服务器加载Servlet时运行,并且只会执行一次,在构造函数之后,在init方法之前执行: 执行的顺序一次是:构造函数-->autowired依 ...
- ios 打包下
一.打包真机方式 二.编译打包 三.配置打包信息 以下为打的包:
- django 模型层(orm)05
目录 配置测试脚本 django ORM基本操作 增删改查 Django 终端打印SQL语句 13条基本查询操作 双下滑线查询 表查询 建表 一对多字段数据的增删改查 多对多字段数据的增删改查 基于对 ...
- linux中强大的编辑工具vim
先来个图镇贴 vim是一个模式编辑器.由三种主要模式比较常用: 1.命令(Normal)模式:默认模式,移动光标,剪切/粘贴文本 2.插入(Insert)或编辑模式:修改文本 3.扩展命令(exten ...
- 题解 【POJ1934】 Trip
题目意思: 有两个字符串(长度\(<=80\)),按字典序输出它们的最长公共子串的所有情况. 解析 最长公共子序列的长度应该都没问题了吧...有问题请自行百度 但关键是要求出每种情况,还要按字典 ...
- ubuntu 添加字体
1. 下载自己需要安装的字体文件 eg: yaheiconsolashybrid.ttf 2. 将字体文件放在目录/home下 3. 到目录/usr/share/fonts/truetype/下建立目 ...