为了把mysql中的存储过程导出成sql文件费老劲了,使用navicat没找到导出存储过程的功能,sql预览的sql语句直接不能用,又不能使用数据库传输,只能执行sql文件来导入存储过程。折腾了半天才发现SQLyog的sql语句可以直接使用,拷贝出来,执行,搞定。
下面是存储过程的写法,早点儿看到的话,早点儿就能发现之前的错误了。
--更改命令结束符(因为在procedure中经常要用到默认的命令结束符--分号(;)
--所以在创建procedure的时候需要定义新的结束符以说明创建procedure的命令结束)
--这里将结束符号改成美元符号--$
mysql> delimiter $
--创建MySQL存储过程p3
--此存储过程的过程名是p3,该过程包含两个参数,
--一个是输入类型的(以IN标示),参数名是nameid,类型是int,
--一个是输出类型的(以OUT标示),参数名是person_name,类型是varchar(10)
--此存储过程的作用是查询出zzm表的全部内容,会输出结果集(data set),然后
--再查询表中记录的ID是nameid的字段name,将其输出到第二个输出类型的参数里面,这个查询
--不会输出结果集。
- mysql> create procedure p3(IN nameid int, OUT person_name varchar(10))
- -> begin
- -> select * from test.zzm;
- -> select zzm.name into person_name from test.zzm where zzm.id = nameid;
- -> end
- -> $