关于MySql中使用自定义函数的学习心得

sql的实现目的,是为了生成一千条有外键关联的两张表中测试数据,批量生成

sql源码:


CREATE FUNCTION 自定义的函数名() RETURNS VARCHAR (32)<!-- 确定返回值类型-->
BEGIN<!-- begin......end 结构中声明的变量,其作用域也仅限这个结构,生命周期也一样,如要定义全局变量请在begin......end结构之前定义即可-->
DECLARE<!-- 声明变量,对相同类型,长度和使用要求的变量,可以使用逗号割开-->
did,
sn,
uid VARCHAR (32) DEFAULT NULL;

<!-- 声明变量类型与长度和默认值,有默认值时,及时变量不被赋值,也可以使用,但其值为给定的默认值-->


DECLARE
ver VARCHAR (12) DEFAULT '1.6.4';

<!-- 单独声明的不同用途的变量,并给定默认值,此变量不用被赋值,但是值是固定的-->


DECLARE
ma VARCHAR (12) DEFAULT NULL;

<!-- 单独声明的不同用途的变量,此变量必须被赋值-->



DECLARE
ver_code,
i INT DEFAULT 25;
<!-- int整形变量-->

DECLARE
upwd VARCHAR (32) DEFAULT '9ae0147d65724f72f74804af4aac6f13';
<!--32为的固定字符串,不需要赋值也可以直接使用-->

DECLARE
mail VARCHAR (24) DEFAULT NULL;


DECLARE
pid VARCHAR (8) DEFAULT 'G9EIAxgZ';




SET i := 1;
<!--重点说明赋值方式参考:https://www.cnblogs.com/genialx/p/5932558.html-->
<!--set的赋值方式可以是固定的给定值,也可以通过rand(),UUID()等mysql内部定义的取值函数取值,如下did,sn,uid,ma,mail等变量的赋值方式,可供参考-->





REPEAT
<!--对变量的使用在于计算与实际的表操作中,本人对次函数中定义的变量进行循环取值,再循环体中进行表数据插入,批量生成需要的测试数据-->
<!-- 循环体语句参考:http://www.jb51.net/article/52251.htm 或自行百度-->
SET did := REPLACE (UUID(), '-', ''),
 sn := REPLACE (UUID(), '-', ''),
 uid := REPLACE (UUID(), '-', '');

<!--同一set语句可针对多个变量赋值如上所示-->
SET ma := (CEIL(RAND() * 9999999));

<!--使用对奇函数赋值-->


SET mail := concat(
(CEIL(RAND() * 999999) + 99999),
"@163.com"
);
<!--使用拼接函数拼接字符串-->

INSERT INTO t_device (
deviceId,
deviceSN,
userId,
deviceStatus,
mac,
version,
version_code,
productId
)
VALUES
(
did,
sn,
uid,
1,
ma,
ver,
ver_code,
pid
);

<!--使用自定义变量进行表数据插入-->
INSERT INTO t_user (
userId,
companyId,
userName,
eMail,
userPwd,
languageType,
regDate,
gender,
userStatus,
isLogout
)
VALUES
(
uid,
11,
mail,
mail,
upwd,
'zh',
now(),
1,
1,
1
);




SET i = i + 1;


UNTIL i > 1000

<!--循环1000次-->
END
REPEAT
;
RETURN ma;
<!--返回值-->
END;

<!--方法结束-->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值