存储过程实例

原创 2016年08月29日 17:29:14

函数:

BEGIN
DECLARE status_p int DEFAULT 0 ;
DECLARE status_e int DEFAULT 0 ;
select count(1) into status_p from tms_member where name = names and `password` = passwords limit 1;
if status_p > 0 THEN
return 114;
END if;
select count(1) into status_e from tms_member where  `email` = emails limit 1;
if status_e > 0 THEN
return 118;
END if;
return 0;
END


存储过程:

BEGIN

 DECLARE num int;
 DECLARE sqlstatus int;
 DECLARE returnCode int;
 DECLARE showStatus varchar(20) DEFAULT '';
 DECLARE showName varchar(20) DEFAULT '';
 DECLARE deviceMac varchar(20) DEFAULT '';
 DECLARE var_status varchar(20) DEFAULT '';
 DECLARE var_username varchar(20) DEFAULT '';
 DECLARE var_mac varchar(20) DEFAULT '';
 DECLARE done INT DEFAULT 0;
 DECLARE sqlstr cursor for 
 select p1.status,p3.serialNo as mac from tms_member p1
 LEFT JOIN tms_member_terminal_bind p2 on p1.id =p2.member_id
 LEFT JOIN tms_terminal_infos p3 on p2.terminal_id = p3.id
 where p1.`name`=username and p1.`password`=password and p3.mac_address=in_mac;
 DECLARE sqlstr2 cursor for 
 select p4.name  from tms_member p4
 where p4.`name`=username and p4.`password`=password;
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN sqlstr2;
 REPEAT
 FETCH sqlstr2 INTO showName;
 IF NOT done THEN
 set var_username = showName;
 end if;
 UNTIL done end repeat;
 close sqlstr2;
OPEN sqlstr;
 REPEAT
 FETCH sqlstr INTO showStatus,deviceMac;
 IF NOT done THEN
 set var_status = showStatus;
 set var_mac = deviceMac;
 end if;
 UNTIL done end repeat;
 close sqlstr;

 if  var_username = "" THEN
     set returnCode = 103;
 ELSEIF var_mac = "" THEN
set returnCode = 900;
 ELSEIF  var_status = "1" THEN
     set returnCode = 119;
 ELSE
select count(*) into num from tms_member 
where  name=username  and `password`=password
and now() between token_create_time and token_expire_time limit 1;
 
if num = 0 THEN
update tms_member 
set token = token ,`token_create_time` = now(),token_expire_time = date_add(now(),INTERVAL 3 MONTH),login_count=login_count+1,
          last_login_time = now(),last_ip = ip
where  name=username  and `password`=password;
END IF;  
set sqlstatus = ROW_COUNT();
        if sqlstatus > 0 then
if num > 0 THEN
set returnCode = 2;
ELSE
set returnCode = 1;
end if;
else
set returnCode = 103;
end if;
 END IF;
select returnCode;

END


版权声明:本文为博主原创文章,未经博主允许不得转载。

sql server存储过程 以及几个常用案例

转载自http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-S...
  • yuliangliang092
  • yuliangliang092
  • 2016年04月23日 10:41
  • 781

sql存储过程几个简单例子(一)

导读:sql存储是数据库操作过程中比较重要的一个环节,对于一些初学者来说也是比较抽象难理解的,本文我将通过几个实例来解析数据库中的sql存储过程,这样就将抽象的事物形象化,比较容易理解。 例1: ...
  • imxiangzi
  • imxiangzi
  • 2015年01月18日 09:44
  • 2098

SQL Server 存储过程示例

--有输入参数的存储过程-- create proc GetComment (@commentid int) as select * from Comment where CommentID=@com...
  • yan309271291
  • yan309271291
  • 2014年08月08日 13:34
  • 1742

pl/sql 存储过程实例

create or replace function IsDone(s_id in varchar2,s_TaskNum in varchar2,s_TaskType in integer) r...
  • whuarui2010
  • whuarui2010
  • 2012年05月06日 00:51
  • 2995

JAVA调用存储过程实例(1)

创建BOOK表 CREATE TABLE BOOK( ID VARCHAR2(200), NAME VARCHAR2(200), describle VARCHAR2(200) ) ...
  • kunfeifeifei
  • kunfeifeifei
  • 2015年11月02日 14:03
  • 2013

通过一个实际的例子学习SQLServer存储过程

下面通过一个实际的例子学习SQLServer存储过程。所谓应用而学。 --定义存储过程    CREATE PROCEDURE  xxxxxxxx_p     (    ...
  • beiguofengguang
  • beiguofengguang
  • 2007年11月04日 10:51
  • 13281

mysql存储过程详解实例

mysql存储过程详解实例
  • pang_da_xing
  • pang_da_xing
  • 2016年12月23日 10:23
  • 6286

SQL存储过程实例详解

本文用3个题目,从建立数据库到创建存储过程,详细讲解数据库的功能。
  • u012025054
  • u012025054
  • 2014年09月01日 23:29
  • 23477

oracle存储过程初学实例

认识存储过程和函数  存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块。但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以...
  • qq_37057095
  • qq_37057095
  • 2017年08月04日 11:05
  • 490

存储过程在java中的实例

java操作mysql存储过程的例子: 例子一: 1、新建表test create table test( field1 int not null ) TYPE=MyISAM ; ...
  • cenfei78325747
  • cenfei78325747
  • 2012年09月19日 10:16
  • 651
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:存储过程实例
举报原因:
原因补充:

(最多只允许输入30个字)