mysql存储过程用法实例分析

往前走,一片诱人的新绿尽收眼底,那是满池的新荷。荷叶有的平展着圆盘浮在水面上;有的绿伞般在空中摇曳;有的兜着水珠把阳光反射得灿烂夺目;有的长得非常高,却未展开叶面,勇敢地挺立着。荷花则多半含苞待放,白中透粉的一朵朵花儿,活像一个个花仙子借着微风,在池中裙袂飞扬,翩然起舞。

本文实例讲述了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