WEB开发网
开发学院数据库MySQL MySQL5.0新特性教程 存储过程:第三讲 阅读

MySQL5.0新特性教程 存储过程:第三讲

 2007-04-22 10:55:57 来源:WEB开发网   
核心提示: 执行过程后,传入值1,MySQL5.0新特性教程 存储过程:第三讲(5),如上面例子,值19被插入到表t中,如果没有初始化,默认变量值为NULL,Question问题问题: CALL p13(NULL) //的作用是什么?另一个:这个CALL语句做了那些动作?你可以通过执行后观察SELEC

执行过程后,传入值1,如上面例子,值19被插入到表t中。

Question

问题

问题: CALL p13(NULL) //的作用是什么?

另一个:这个CALL语句做了那些动作?

你可以通过执行后观察SELECT做了什么,也可以根据代码判断,在5秒内做出。

Answer

答案

mysql> CALL p13(NULL)//
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM t//
+------+
| s1 |
+------+
| 6 |
| 6 |
| 19 |
| 19 |
+------+
4 rows in set (0.00 sec)

答案是当你调用p13时,MySQL插入了另一条包含数值19的记录。原因是变量variable1的值为NULL,CASE语句的ELSE部分就被执行了。希望这对大家有意义。如果你回答不出来,没有问题,我们可以继续向下走。

Loops 循环语句
WHILE ... END WHILE
LOOP ... END LOOP
REPEAT ... END REPEAT
GOTO

 下面我们将会创建一些循环。我们有三种标准的循环方式:

WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GO TO(译者语:最好不要用吧,用了就使流程混乱)。

CREATE PROCEDURE p14 ()
BEGIN
DECLARE v INT;
SET v = 0;
WHILE v < 5 DO
INSERT INTO t VALUES (v);
SET v = v + 1;
END WHILE;
END; //

这是WHILE循环的方式。我很喜欢这种方式,它跟IF语句相似,因此不需要掌握很多新的语法。这里的INSERT和SET语句在WHILE和END WHILE之间,当变量v大于5的时候循环将会退出。使用

"SET v = 0;"

语句使为了防止一个常见的错误,如果没有初始化,默认变量值为NULL,而NULL和任何值操作结果都为NULL。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:MySQL 特性 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接