一个Mysql的存储过程
2009-02-04 18:25
232 查看
下午自己写的,公司产品用到,第一次写存储过程。发上来代码。不做详细解释,有疑问可以问我。
DELIMITER $$ DROP PROCEDURE IF EXISTS `tsts_user`.`proc_login`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_login`(id varchar(50), pwd varchar(255), pTypeUser int, ServerIP varchar(20), ip varchar(50), out result int) begin #返回记录 #declare ploginid varchar(50); set @ploginid = null; set @ppwd = null; set @pUserType = null; set @pEndTime = null; set result = null; select @ploginid:=`loginid` ,@ppwd:=`password`,@pUserType:=ptype,@pEndTime:=endtime,name,groupname,area,notlogin,validdate, viewnews,viewgp,viewqh,viewwp,viewwh,viewgg,userlevel, memo,viewgp_max,viewqh_max,viewwp_max, viewwh_max,viewgg_max,usercfg,begintime,usedtotaltime, isonline,serverip from product p where loginid=id; #如果帐户不存在 if(@ploginid is null) then set result = 1; else #如果帐户存在,但是密码不正确 if(@ppwd is null or @ppwd != pwd) then set result = 2; else #如果帐户存在,并且密码正确,但是过期了 if(@pEndTime is null or now() > @pEndTime) then set result = 3; else #如果帐户存在、密码正确、没过期,但是登录类型不正确 if(@pUserType is null or pTypeUser not in (0, 16, 18, @pUserType)) then set result = 4; else ##全部正确,进行更新 update product set last_access_time=now(),login_times=login_times+1,isonline=1,serverip=ServerIP,last_access_ip=ip where loginid=id; end if; end if; end if; end if; #如果result为空则改变成为0 if(result is null) then set result = 0; end if; end$$ DELIMITER ;
相关文章推荐
- mysql怎么让一个存储过程定时执行
- MYSQL存储过程的一个完整实例
- 一个MySQL清除数据库所有表数据保留表结构的存储过程
- mysql 存储过程案列一个。
- 使用mysql存储过程递归tree(如一个上级下面的所有下级的所有下级。。。。)
- 一个订单相关的存储过程(MySQL)
- 最近写的一个Mysql存储过程
- mysql 让一个存储过程定时作业的代码
- mysql 让一个存储过程定时作业的代码
- mysql怎么让一个存储过程定时执行
- mysql怎么让一个存储过程定时执行
- mysql 存储过程一个简单的循环遍历操作数据
- mysql 一个带游标的存储过程例子
- mysql 让一个存储过程定时作业的代码
- 一个 mysql 行 转 列 的存储过程
- mysql怎么让一个存储过程定时执行
- mysql怎么让一个存储过程定时执行
- 关于一个简单的mysql存储过程实例
- 写MYSQL存储过程遇到的一个小BUG
- 关于mysql中设置隔一段事件调用一个存储过程的事件