mysql存储过程用法实例分析
吾爱主题
阅读:185
2024-04-05 14:00:27
评论:0
本文实例讲述了mysql存储过程用法。分享给大家供大家参考,具体如下:
概述:
简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;
存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;
示例
?1 2 3 4 5 6 | DELIMITER // CREATE PROCEDURE proc ( IN num INT ) BEGIN SELECT * FROM v9_qd_account limit num; END // DELIMITER ; |
执行:
?1 2 | SET @p_in=5; CALL proc(@p_in); |
或者
?1 | CALL proc(5); |
循环
?1 2 3 | DECLARE num int default 5; SET num = 1; SET num = num + 1; |
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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 ; |
调用
?1 | CALL proc( 'test' , '123456' ,1,1,21); |
查看
?1 2 3 | SHOW PROCEDURE STATUS LIKE 'C%' \G; 查看以字母C开头的存储过程 SHOW CREATE PROCEDURE proc \G; 查看状态和创建语句 information_schema.Routines 中查看 |
删除
?1 2 | DROP PROCEDURE IF EXISTS proc; DROP FUNCTION mytest; |
点拨
如果参数中有中文可以这样
?1 | CREATE PROCEDURE useInfo( IN u_name VARCHAR (50) character set gbk, OUT u_age INT ) ...... |
希望本文所述对大家MySQL数据库计有所帮助。
原文链接:http://www.cnblogs.com/mr-amazing/p/4626646.html
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。