全部博文(695)
分类: Mysql/postgreSQL
2017-03-15 16:06:28
http://www.cnblogs.com/chubeautiful/p/3540710.html
之前在工作中总是听别人提到存储过程,觉得是个很高深的东西,利用工作之余,看了下相关的知识,现将学习知识总结如下,希望可以为刚学习的人提供些许帮助。
开发环境:Navicat For Mysql。
MySQL存储过程
CREATE PROCEDURE存储过程名 (参数列表) BEGIN SQL语句代码块 END |
注意:
由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数。要指定为其它参数,可在参数名之前使用关键词 OUT或INOUT 实例演练: eg1,带(输出参数)返回值的存储过程: 1、建表 create table abin5( id int, name5 VARCHAR(39) ) 2、创建存储过程 create procedure pabin5(out n int) BEGIN select count(*) from abin5; END 3、测试存储过程 call pabin5(@n) eg2,带输入参数的存储过程: 1、建立存储过程 create procedure pabin6(in n int) BEGIN SELECT * FROM abin5 where id=n; END 2、测试存储过程 SET @n=1; CALL pabin6(@n)
或者
CALL pabin6(1)
在mysql客户端定义存储过程的时候使用delimiter命令来把语句定界符从;变为//。
当使用delimiter命令时,你应该避免使用反斜杠(‘"’)字符,因为那是MySQL的转义字符。
如:mysql> delimiter // mysql> CREATE PROCEDURE simpleproc (OUT param1 INT) -> BEGIN -> SELECT COUNT(*) INTO param1 FROM t; -> END -> // Query OK, 0 rows affected (0.00 sec)
http://blog.csdn.net/u014209975/article/details/52243295