create table emp(
empno mediumint unsigned not null default 0,
name varchar(20) not null default ‘‘,
)engine = MyISAM default charset = utf8;
#随机产生字符串
#定义一个新的命令结束符,防止创建存储过程中冲突
delimiter $$
#删除自定函数
drop function rand_string $$
#创建函数 rand_string(n INT) #(n INT)该函数接收一个整数
creat function rand_string(n INT)
returns varchar(255) #随机返回指定n长度的一个字符串
begin
#定义一个变量 chars_str varchar (100) 默认值为 ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789‘
declare chars_str varchar(100) default ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789‘;
declare return_str varchar(255) default ‘‘;
declare i int default 0;
while i < n do
set return_str = concat(return_str, substring(chars_str, floor(1+rand()*62),1));
set i = i + 1;
end while;
return return_str;
end $$
#随机添加max_num条,编号从start开始
#创建存储过程
create procedure insert_values(in start int(10), in max_num int(10))
begin
declare i int default 0;
#set autocommit = 0 关闭自动提交
set autocommit = 0;
repeat
set i = i+1;
#插入数据表
insert into emp values ((start+i), rand_string(6), rand_num());
until i = max_num
end repeat;
#手动提交
commit;
end $$
#调用存储
call insert_values(0, 8000000)$$
如果执行mysql出现错误号为1418时,可以设置log_bin_trust_routine_creators=1,有3种方法
1、在客户端执行 SET GLOBAL log_bin_trust_routine_creators=1;
2、在mysql配置文件my.ini或my.cnf中[mysql]段上添加log-bin-trust-routine-creators=1
3、mysql启动时 加上--log-bin-trust-routine-creators=1