首先,我认为在实际的开发中,应该没人会用存储过程去计算阶乘,但是用这个作为练习我觉得还是挺不错的,因为通过这个存储过程的编写可以熟悉参数类型,存储过程内部使用自定义变量,循环结构的语法的使用
mysql> create procedure jiecheng(in parameter int)
-> begin
-> declare var int;
-> declare var2 int;
-> set var=1;
-> set var2=1;
-> while var<parameter do
-> set var2=var2*var;
-> set var=var+1;
-> end while;
-> select var;
-> select var2;
-> end;
-> //
Query OK, 0 rows affected
mysql> set @x=5;
-> //
Query OK, 0 rows affected
mysql> delimiter ;
mysql> select @x;
+----+
| @x |
+----+
| 5 |
+----+
1 row in set
mysql> call jiecheng(@x);
+-----+
| var |
+-----+
| 5 |
+-----+
1 row in set
+------+
| var2 |
+------+
| 24 |
+------+
1 row in set