mysql自定义函数并在存储过程中调用,生成一千万条数据

您所在的位置:网站首页 存储过程中调用存储过程 mysql自定义函数并在存储过程中调用,生成一千万条数据

mysql自定义函数并在存储过程中调用,生成一千万条数据

2024-07-10 23:43| 来源: 网络整理| 查看: 265

mysql 自定义函数,生成 n 个字符长度的随机字符串

-- sql function delimiter $$ create function rand_str(n int) returns VARCHAR(255) BEGIN declare str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSQUVWXYZ'; declare i int DEFAULT 0; declare res_str VARCHAR(255) default ''; while i < n do set res_str = concat(res_str,substr(str,FLOOR(rand()*52+1),1)); set i = i + 1; end while; return res_str; end$$ delimiter ;

写好之后,运行一下,运行成功后,可以在函数下看到刚刚自定义的函数

然后,调用一下

SELECT rand_str(3); -- 生成3个字符的随机字母

写一个存储过程,

实现功能:insert_emp2(2,10) 从2开始,插入10条数据

delimiter $$ create procedure insert_emp2(in startNum int ,in max_num int) BEGIN -- 声明一个变量记录当前是第几条 declare i int DEFAULT 0; -- 默认情况下是自动提交sql set autocommit = 0; -- 禁止自动提交sql -- 循环 repeat set i = i + 1; -- 插入数据 id 增加, name 随机,年龄随机 insert into emp2 values (startNum + i,rand_str(5),floor(10+rand()*30)); until i = max_num end repeat ; commit; -- 待循环完毕后再进行提交,即整体提交整体的 sql,这样可以提高效率,否则循环里会一次一次的去提交sql,数据多了会很慢。 end$$ delimiter$$

然后,调用 存储过程:

call insert_emp2(100,10000000); --插入一千万条数据进去

等几分钟

。。。。

好久啊

这么久来 还没创建好

我的天呐

。。。。。

hello

我去

后悔了,一千万有点太多了



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3