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

mysql存储过程用法实例分析

程序员文章站 2024-01-23 08:26:28
本文实例讲述了mysql存储过程用法。分享给大家供大家参考,具体如下: 概述: 简单的说,就是一组sql语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于java...

本文实例讲述了mysql存储过程用法。分享给大家供大家参考,具体如下:

概述:

简单的说,就是一组sql语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于java语言中的方法;

存储过程跟触发器有点类似,都是一组sql集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;

示例

delimiter //
create procedure proc (in num int)
begin
select * from v9_qd_account limit num;
end //
delimiter ;

执行:

set @p_in=5;
call proc(@p_in);

或者

call proc(5);

循环

declare num int default 5;
set num = 1;
set num = num + 1;

delimiter //
create procedure proc(in sname varchar(20),in pwd varchar(5),in qd int,in start int,in end int)
  begin
  declare var int;
  declare myname varchar(30);
  set var=start;
  while var<end do
    set myname = concat(sname,lpad(var,3,'0'));
    insert into v9_qd_account (storename,password,qudao,regdate) value(myname,md5(pwd),qd,unix_timestamp());
    set var=var+1;
  end while;
  end //
delimiter ;

调用

call proc('test','123456',1,1,21);

查看

show procedure status like 'c%' \g; 查看以字母c开头的存储过程
show create procedure proc \g; 查看状态和创建语句
information_schema.routines 中查看

删除

drop procedure if exists proc;
drop function mytest;

点拨

如果参数中有中文可以这样

create procedure useinfo(in u_name varchar(50) character set gbk,out u_age int) ......

更多关于mysql相关内容感兴趣的读者可查看本站专题:《mysql存储过程技巧大全》、《mysql常用函数大汇总》、《mysql日志操作技巧大全》、《mysql事务操作技巧汇总》及《mysql数据库锁相关技巧汇总

希望本文所述对大家mysql数据库计有所帮助。