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 ...
随机推荐
- js excel导出功能
<html> <head> <p style="font-size: 20px;color: red;">使用a标签方式将json导出csv文件 ...
- p2456二进制方程 题解
题面描述:可以跳过 一个形如: X1X2…Xn=Y1Y2..Ym 的等式称为二进制方程. 在二进制方程的两边:Xi和Yj (1<=i<=n:1<=j<=m)是二进制数字(0.1 ...
- 使用python读取配置文件并从mysql数据库中获取数据进行传参(基于Httprunner)
最近在使用httprunner进行接口测试,在传参时,用到了三种方法:(1)从csv文件中获取:(2)在config中声名然后进行引用:(3)从函数中获取.在测试过程中,往往有些参数是需要从数据库中获 ...
- angularjs 实现下拉框编辑数据回显
https://www.cnblogs.com/janice-jia/p/9764938.html 正常的js回显选择,需要添加 select ="selected",angula ...
- 为什么重写equals()方法就必须重写hashCode()方法
hashCode()和equals()保持一致,如果equals方法返回true,那么两个对象的hasCode()返回值必须一样.如果equals方法返回false,hashcode可以不一样,但是这 ...
- Eclipse指定jdk启动
在eclipse.ini文件中加入这一句话: -vm D:/Java/jdk/jdk1.8/jre/bin/server/jvm.dll
- html 与 jsp 文件格式区别
html 与 jsp 文件格式区别 html5 <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...
- koa2+redis+jwt token验证,简单注册登录
首先新建文件夹命名koa-server,npm init,相关包的安装就不说了,这是我的package.json 新建index.js文件,编码如下,config全局配置不用管,redis是一个简单的 ...
- C# List分组
//分组 8个为一组 List<List<string>> ArrayList = sArray.Select((x, i) => new { Index = i, Va ...
- SpringBoot常见报错及解决方法
问题一 Field redisUtil in com.sui.demo.controller.redisController required a bean of type 'com.sui.demo ...