mysql存储过程

1.查询

 -- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `UserChecker`(
IN tablename VARCHAR(16),
IN username VARCHAR(16),
IN userpwd VARCHAR(16)
)
BEGIN
#SELECT COUNT(*) FROM userdata.userinfo WHERE STRCMP(name,username)=0 AND STRCMP(password,userpwd)=0;
#SELECT COUNT(*) FROM userdata.userinfo WHERE name=username AND password=userpwd;

DECLARE num INT;
DECLARE result INT;
SET result=0,num=1;

WHILE (num<3 AND result=0) DO   #注意:num<3表示只有两张表,如果更改表的数目则需要更改此值
    SET @queryStr=CONCAT('SELECT COUNT(*) INTO @ret FROM userdata.',tablename,'_',num,' WHERE name=','''',username,'''',' AND password=','''',userpwd,'''',';');
    PREPARE smts FROM @queryStr;
    EXECUTE smts;
    SET result=@ret;
    SET num=num+1;
    DEALLOCATE PREPARE smts;
END WHILE;

SELECT result;

END


2.插入

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `InsertUserInfo`(
IN tableName VARCHAR(16),
IN uName VARCHAR(16),
IN uPwd VARCHAR(16),
IN uPrivilege VARCHAR(16)
)
BEGIN

    SET @cmdStr=CONCAT('INSERT INTO ',tableName,' values(','''',uName,'''',',','''',uPwd,'''',',','''',uPrivilege,
        '''',');');
    
    PREPARE cmdST FROM @cmdStr;
    EXECUTE cmdST;
    DEALLOCATE PREPARE cmdST;

END


3.删除

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `RemoveUserInfo`(
IN uName VARCHAR(16)
)
BEGIN
    DECLARE result INT;
    DECLARE num INT;
    SET result=0,num=1;
    
    WHILE (num<3 AND result=0) DO   #注意:num<3表示只有两张表,如果更改表的数目则需要更改此值
        SET @queryStr=CONCAT('SELECT COUNT(*) INTO @ret FROM userdata.userinfo_',num,' WHERE name=','''',uName,'''',';');
        PREPARE smts FROM @queryStr;
        EXECUTE smts;
        SET result=@ret;
        SET num=num+1;
        DEALLOCATE PREPARE smts;
    END WHILE;
    
    IF(result=1) THEN
        SET num=num-1;
        SET @delStr=CONCAT('DELETE FROM userdata.userinfo_',num,' WHERE name=','''',uName,'''',';');
        PREPARE delTS FROM @delStr;
        EXECUTE delTS;
        DEALLOCATE PREPARE delTS;
    END IF;

END
阅读更多
上一篇C++几个常用宏
下一篇cygwin的mintty窗口中输出的中文是乱码
想对作者说点什么? 我来说一句

MySQL存储过程 MySQL存储过程

2011年04月11日 176KB 下载

mysql存储过程mysql存储过程

2010年08月31日 127KB 下载

MySQL存储过程学习

2011年04月09日 467KB 下载

MySQL存储过程经典教程

2008年09月05日 476KB 下载

MYSQL存储过程.pdf

2011年05月11日 65KB 下载

mysql存储过程实现分页

2011年11月16日 37KB 下载

MySQL存储过程实例教程

2012年03月07日 102KB 下载

mysql存储过程实例

2018年03月15日 55KB 下载

Java调用Mysql存储过程

2013年04月07日 6KB 下载

mysql存储过程2

2015年01月30日 559KB 下载

没有更多推荐了,返回首页

关闭
关闭