欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

创建MySQL存储过程示例

程序员文章站 2022-05-10 12:57:48
...

下文将教您如何创建MySQL存储过程,并附上了详细的步骤,如果您在MySQL存储过程方面遇到过问题,不妨一看,对您会有所帮助。 --选择数据库 mysql usetest; Databasechanged --创建示例用表 mysql createtablezzm( - idintprimarykeyauto_increment, - nameva

下文将教您如何创建MySQL存储过程,并附上了详细的步骤,如果您在MySQL存储过程方面遇到过问题,不妨一看,对您会有所帮助。

--选择数据库

  1. mysql> use test;  
  2. Database changed

--创建示例用表

  1. mysql> create table zzm(  
  2. -> id int primary key auto_increment,
  3. -> name varchar(10)
  4. -> );
  5. Query OK, 0 rows affected (0.20 sec)
  6. mysql> insert into zzm(name) values('zhang');
  7. Query OK, 1 row affected (0.08 sec)
  8. mysql> insert into zzm(name) values('zeng');
  9. Query OK, 1 row affected (0.05 sec)
  10. mysql> insert into zzm(name) values('ming');
  11. Query OK, 1 row affected (0.05 sec)
  12. mysql> select * from zzm;
  13. +----+-------+
  14. | id | name |
  15. +----+-------+
  16. | 1 | zhang |
  17. | 2 | zeng |
  18. | 3 | ming |
  19. +----+-------+
  20. 3 rows in set (0.00 sec)

--更改命令结束符(因为在procedure中经常要用到默认的命令结束符--分号(;) --所以在创建procedure的时候需要定义新的结束符以说明创建procedure的命令结束) --这里将结束符号改成美元符号--$ mysql> delimiter $ --创建MySQL存储过程p3 --此存储过程的过程名是p3,该过程包含两个参数, --一个是输入类型的(以IN标示),参数名是nameid,类型是int, --一个是输出类型的(以OUT标示),参数名是person_name,类型是varchar(10) --此存储过程的作用是查询出zzm表的全部内容,会输出结果集(data set),然后 --再查询表中记录的ID是nameid的字段name,将其输出到第二个输出类型的参数里面,这个查询 --不会输出结果集。

  1. mysql> create procedure p3(IN nameid int, OUT person_name varchar(10))  
  2. -> begin
  3. -> select * from test.zzm;
  4. -> select zzm.name into person_name from test.zzm where zzm.id = nameid;
  5. -> end
  6. -> $
  7. Query OK, 0 rows affected (0.00 sec)