mysql 存储过程简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 存储过程简介相关的知识,希望对你有一定的参考价值。

存储过程类似一个存储在数据库的一个数据库脚本。它类似一个方法,可以批量执行一些数据库的操作。

本文编写一个简单的存储过程来快速了解存储过程。

 

1.因为存储过程类似编程语言的方法,所以方法中可能会用到 ; 运算符来标志一条语句的结束。这和mysql命令行语句结束标志 ; 是冲突的。为了在命令行中编写存储过程,我们先更改mysql语句的结尾标志:

mysql> delimiter $

 

执行这条语句之后,mysql语句的结尾标识符就被定义成了 $ 。这样就避免了定义存储过程中标识符冲突的问题。

例如查询语句 select * from student; 定义后需输入 select * from student $ 才能执行。

 

2.定义存储过程语句

create procedure addstudent(in maxsize int)
 begin
 declare var int;
 declare stu_name varchar(20);
 declare sch_id int;
 declare cls_name varchar(20);
 set var = 0;
 while var < maxsize do
 set stu_name = rockderia;
 set sch_id = RAND() * 10;
 set cls_name = 一年一班;
 insert into student (CName, SchoolID, ClassName) values (stu_name, sch_id, cls_name);
 set var = var + 1;
 end while;
 end;
$

结尾的$标志着定义完成。我们可以看到,创建存储过程的大体模式和创建表类似,而本体又和一个脚本方法类似。有几点区别特别注意:

[1]需要使用mysql自己的基本变量类型。

[2]变量类型放在变量名的后边。

[3]定义变量语句(例如:declare var int;)要位于所有语句之前。

上述语句其实不难理解,也没有用到太多的特性,主要就是了解以下存储过程的使用过程。

 

3.定义成功后,我们可以调用这个存储过程

mysql> call addstudent(10)$

上述的方法会插入10条数据。

 

4.存储方式不支持覆盖,所以需要修改的时候直接删除旧的存储方式在重新创建即可。

drop procedure addstudent$

5.当然,没有冲突操作的时候我们可以把结尾标识符改回来

mysql> delimiter ;

 

以上是关于mysql 存储过程简介的主要内容,如果未能解决你的问题,请参考以下文章

MySQL存储过程简介

mysql数据库存储过程

mysql数据库存储过程

MySQL存储过程

MySQL之存储过程实例讲解(创建调用查看修改删除)

MySql触发器使用