mysql 之 百万条数据的生成

在创建之前,我们先来了解mysql的自定义函数。

MySQL本⾝提供了内置函数: 这些函数的存在给我们⽇常的开发和数据操作带来了很⼤的便利,聚合函数SUM()、AVG()以及⽇期时间函数等等,可是我们总会出现其他的需求:我们需要调⽤⼀个函数,这个函数需要按照我们的要求来实现我们⾃⼰的功能,可是这个函数式系统不能提供的因为这中需求的不确定性。因此我们需要⾃⼰来解决这种需求。还好MySQL设计的扩展性给了我们这个机会,我们可以通过⾃定义函数的功能解决这个问题。

下面来看自定义函数.

先查看函数创建功能是否开启,默认关闭

show variables like '%func%';
# OFF代表已关闭 ON 代表已打开
# 看到OFF之后 输入:

set global log_bin_trust_function_creators=1;


如果这个名字的函数存在,就删掉
drop function if exists add_num;

因为mysql 默认  ; 分号 为结束语句。 所以函数得 用 //  或者 $$ 来区分。
 

delimiter //  或者  $$

CREATE FUNCTION <函数名> ( [ <参数1> <参数1类型> ],[ <参数2> <参数2类型>])
RETURNS <返回值类型>
BEGIN
    <函数体>  

 RETURN (<返回值>);

END ; 或者$$



delimiter $$

create function add_num(num1 int ,num2 int) returns int
begin
    declare a int default num1*num2;  #定义局部变量
    declare b int ;
    set b=50;   #对局部变量进行赋值

    return ( a+b);

end ;




#执行这个函数
select add_num(30,10);

 输出结果为350;

下面我们来进行一万条数据的插入。 

注意:字段 是用 ` `  插入,就是键盘 Esc 下面的 ``  。而不是用 ''  逗号。字符串才是'' 。别弄一天都没弄好哈!

insert into tab1(`name`,`type`,`number`) values ('hh','1','1');
drop function if exists add_num;

delimiter $$

create function add_num() returns int
begin
    declare a int default 10000;  #定义局部变量
    declare i int default 0;
    while i<a DO
            insert into tab1(`name`,`type`,`number`) values
            (concat('数据',i),concat('',floor(rand()*(9999-1000)+1000)),UUID());
            set i=i+1;
        end while ;
    return (i);

 end ;


#执行这个函数

select add_num();

一万条数据就这样轻松的生成了; 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值