首页 » Web前端 » php主动填充软件技巧_Mysql自动填充测试数据

php主动填充软件技巧_Mysql自动填充测试数据

访客 2024-11-17 0

扫一扫用手机浏览

文章目录 [+]

为什么要写一个自动添补测试数据的脚本?

网上实在也有一些大略的给Mysql填充数据的博客,但是大多数都是针对付特定的表的特天命据来实现,写的过于大略,实用性不强,而这个脚本可以根据我们供应表的字段,来自动识别我们的字段并添补进入对应的内容,常用的构造都能够知足,当然还有进一步完善的空间。

php主动填充软件技巧_Mysql自动填充测试数据

存储过程

Mysql的存储过程可以帮助我们实现一些较为繁芜的业务逻辑,就像我们在PHP或者其他措辞中所写的逻辑一样,在Mysql中也同样可以实行,比如我们要循环写入1000行数据。

php主动填充软件技巧_Mysql自动填充测试数据
(图片来自网络侵删)

不过虽然Mysql可以实现,但是我们更希望把业务逻辑建立在我们的业务措辞上面,而Mysql则专注于处理数据的CURD,其紧张缘故原由在于我们今后在修正或者要查找到这块的业务逻辑时,会相对麻烦一些。

因此,我更方向于Mysql可以用来做一些与我们的业务逻辑无关,而又须要用到措辞的逻辑性的项目,比如我在前面提到的自动填充数据。

形式

这是一个自动识别表构造并填充数据的脚本,在第一行利用了delimiter $$用作分隔符,由于接下来的脚本里面很多地方会利用到;,所以为防止过早的识别结束,暂时修正了Mysql默认的分隔符。

此外,前面有begin和end包裹,用于识别开始和结束。

暂时先不讲逻辑怎么实现的(实在逻辑也非常大略),我们先来理解一下Mysql的存储过程的几个部分。

注:通过show create procedure your_procedure_name可以查看创建的存储过程的代码内容。

变量

Mysql的变量分成三种:全局变量,用户变量,局部变量。

局部变量

局部变量存在于我们的存储过程中,在表面无法访问:

结果输出nine,由于在用户变量中须要@来声明,以是此时在表面无法利用select myName,否则报错。

用户变量

用户变量存在于全局,但是有效期仅限于会话期(以是也可以叫做会话变量),即我们下次打开Mysql时,变量就会消逝:

输出nine。

当然,赋值的形式是多样的,我们也可以结合查询语句来赋值:

这个时候赋值的内容便是我们表中的数据,这里须要把稳的是逐一对应关系,切不可一对多或者多对一。

在某些时候,我们可能须要对查询的次数进行记录,实在这个时候我们可以完备利用变量来帮我们实现:

这个时候@selectNum的结果为2。

全局变量

全局变量是设置在系统中的配置,我们可以通过show global variables来查看,也可以通过set global oneofvariable=value来设置我们已经存在的配置,这里我特意给已经存在这几个字眼加粗,由于我在网上看到有博文说可以设置自定义的全局变量,但是我考试测验了之后创造报错了,我用版本5.5和5.7都考试测验过了,提示这个变量不存在。

参数

参数分成IN,OUT以及INOUT三种情形:

实在从其字面上我们也能猜出他们的不同效果:IN是不会影响表面设置的结果(IN是默认办法),OUT和INOUT是会影响到的,同时INOUT两边是相互影响的,我们还是以上面的test为例:

in

结果为1。

out

结果为2。

语句块

这篇文章关于语句块已经阐述的足够详细,这里不再赘述。

实现

代码:

实在实现这个功能的逻辑非常大略,再各个步骤里面也附上了步骤,紧张是利用了系统的information_schema.COLUMNS表来获取我们须要的一些基本信息,紧张构造如下图所示:

标签:

相关文章

php数组中累加技巧_PHP进修第二课数组一

数组的定义写在前面:数组非常主要!数组非常主要!!数组非常主要!!!主要的事情说三遍~。来日诰日的文章依旧会讲解数组的利用,主要的...

Web前端 2024-12-09 阅读0 评论0