MySQL 中的自定义函数和存储过程 简单实例
2015-06-12 16:37
761 查看
需要说明的是:MySQL中没有表变量, 一般是通过临时表来存贮结果集的。
那么 我们如何取出在储存过程中select出来的结果集呢?如果是其它存储过程中,你可以使用生成的临时表。如果是java程序中,你可以直接象执行select * from aa一样调用call xxx();的结果
--MySQL
中的函数
----MySQL中的存储过程
那么 我们如何取出在储存过程中select出来的结果集呢?如果是其它存储过程中,你可以使用生成的临时表。如果是java程序中,你可以直接象执行select * from aa一样调用call xxx();的结果
--MySQL
中的函数
-- 函数 返回int类型 DELIMITER $$ DROP FUNCTION IF EXISTS `switchnum`$$ create FUNCTION switchnum() RETURNS int begin declare v_xx int default null; declare v_yy int default 1; declare v_zz int default 2; set v_xx=v_yy; set v_yy=v_zz; set v_zz=v_xx; return v_zz; end $$ DELIMITER ; select switchnum();
----MySQL中的存储过程
-- 创建存储过程 传入int类型的参数 delimiter ; drop procedure if exists getUserInfo; create PROCEDURE getUserInfo (in us int) begin if (us is not null) then set us=2; end if; end ; set @us=4; call getUserInfo( @us); select @us as tempus; -- 创建存储过程 传入varchar 类型的参数 delimiter; drop procedure if exists getvarchar; create procedure getvarchar( in ad varchar(20)) begin if (ad is not null) then select * from tb_users where username=ad; else select * from tb_users; end if; end ; set @ad=null; call getvarchar(@ad); select @ad; -- 测试 drop procedure if exists pr_param_inout; create procedure pr_param_inout ( inout id int ) begin select id as id_inner_1; -- id 值为调用者传进来的值 if (id is not null) then set id = id + 1; select id as id_inner_2; else select 1 into id; end if; select id as id_inner_3; end; set @inout=2; call pr_param_inout(@inout); select @inout as in_out; -- ---测试procedure delimiter; DROP PROCEDURE IF EXISTS text; create procedure text( out rtn int ) begin declare LoginId INT default 0; set rtn=1; IF LoginId = 3 THEN set rtn=2; ELSEIF LoginId = 0 THEN set rtn=3; ELSE set rtn=4; END IF; end ; call text(@rtn); select @rtn as rtn;
相关文章推荐
- mysql存储过程注释
- Mysql 数据库权限导出
- mysql事务
- R语言使用RMySQL连接及读写Mysql数据库
- mysql主从复制(Master-Slave)
- 第一章:mysql安装for windows
- 使用tcmmaloc优化mysql的内存分配性能
- Mysql字符串截取函数SUBSTRING的用法说明
- case when出报表
- MySQL出现too many connections(1040)错误的解决办法
- 复制读写规则
- mysql开发需求
- Mysql_mysql多个TimeStamp设置
- mysql左连接left join右连接 right join 内连接 inner join笔记
- mysql暴错注入
- mysql关键字distinct笔记
- Mysql线程池优化笔记
- 备库设置read_only被阻塞
- 联合索引建立依据
- mysql异或运算的sql注入判断