MySQL存储过程二

MySQL存储过程二,第1张

上一节存储过程封装的都是简单的select语句,直接使用被封装的语句就能完成。所以存储过程往往应用于更复杂的业务规则处理时更有效

看一个例子

这个例子使用元素比较多,解释一下:

COMMENT为表添加了一句注释

-- 单行注释,注释跟在后面的内容,需要注意-- 后需要加一个空格才能生效;

(#注释内容        /*注释内容*/  这两种方法也能进行注释)

Declare用来声明变量,一句declare只能声明一个变量,变量必须先声明后使用

If...Then是进行条件判断的,基本语句如下:

If ... Then ... Else ... End If

这个存储过程完成了订单合计,并判断该订单是否需要增加营业税。taxable是一个布尔值(如果要增税为真,否则为假)。在存储体中定义了两个局部变量。并将结果存储到局部变量total中。if语句检查taxable是否为真,如果为真,则用另一条select语句增加营业税。最后将total结果保存到ototal中。

调用结果如下:

检查存储过程

SHOW  CREATE  PROCEDURE  过程名

为了获得包括何时、由谁创建等详细信息的存储过程列表,使用

Show procedure status  -- 会列出所有存储过程

可以添加过滤,比如

存储过程循环语句

1. while

WHILE (表达式)  DO 

...

END WHILE

看一个例子

创建了一个循环存储过程,重复向human插入5条记录。下面调用看一下结果

2.repeat

基本语句:

Repeat ...until 条件...END  Repeat;

同样 *** 作,使用repeat执行如下

在MySQL中,使用While语句循环与SQL

Server中有所不同,代码测试通过。

MSSQL中使用while语句循环生成数据的方法:

示例代码:

复制代码

代码如下:

declare

@a

int

set

@a

=

1

while

@a<25

begin

INSERT

INTO

demotable

(id,item1,item2)

VALUES

(@a,"abc","123")

set

@a

=

@a

+

1

end

MySQL中,使用while循环处理数据方法:需要新建为存储过程,直接调用执行存储过程。

示例代码:

复制代码

代码如下:

CREATE

DEFINER=`root`@`localhost`

PROCEDURE

`NewProcedure`()

BEGIN

DECLARE

i

INT

SET

i=1

WHILE

i<100

DO

INSERT

INTO

demotable

(id,item1,item2)

VALUES

(i,"测试试题","0")

SET

i

=

i

+

1

END

WHILE

END


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8660890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存