当前位置:首页 > 开发 > 数据库 > 正文

mysql 写过的存储过程(PROCEDURE)

发表于: 2012-09-04   作者:ling凌yue月   来源:转载   浏览次数:
摘要: 因为在自定义函数中limit后面不支持写变量,也不支持动态sql,所以只能写一个存储过程。 getID: delimiter $$ DROP PROCEDURE IF EXISTS `getID`$$ CREATE PROCEDURE getID(IN appID INT, IN tID INT, IN floor INT) BEGIN DECLARE s VARCH
因为在自定义函数中limit后面不支持写变量,也不支持动态sql,所以只能写一个存储过程。

getID:
delimiter $$
DROP PROCEDURE IF EXISTS `getID`$$
CREATE PROCEDURE getID(IN appID INT, IN tID INT, IN floor INT)
BEGIN
	DECLARE s VARCHAR(255);
	DECLARE f INT;
	SET f = floor - 1;
	SET @mID = 0;
	SET @ms=concat('SELECT `id` INTO @mID FROM `comment`  WHERE `appid`= ',appID,'
 AND `tid`= ',tID,' ORDER BY `id` LIMIT ',f,',1');
	PREPARE STMT FROM @ms;
	EXECUTE STMT;
END
$$
delimiter ;


第二种写法:
delimiter $$
DROP PROCEDURE IF EXISTS `getID`$$
CREATE PROCEDURE getID(IN appID INT, IN tID INT, IN floor INT)
BEGIN
	DECLARE f INT;
	SET f = floor - 1;
	SET @appID = appID;
	SET @tID = tID;
	SET @f = f;
	SET @mID = 0;
	SET @ms = 'SELECT `id` INTO @mID FROM `wy_comment`  WHERE `appid`=?
 AND `tid`=? ORDER BY `id` LIMIT ?,1';
	PREPARE STMT FROM @ms;
	EXECUTE STMT USING @appID,@tID,@f;
END
$$
delimiter ;


测试sql:
CALL getID(25,3399,2);

SELECT @mID;


mysql 写过的存储过程(PROCEDURE)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
procedure带有名字的pl/sql程序块 exec p;执行刚创建的存储过程 说得简单点 就是create or replace
什么是存储过程? 存储过程(procedure)类似于C语言中的函数 用来执行管理任务或应用复杂的业务规
1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函
1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函
用户反映,系统操作日志会使用数据库快速增大,情况可参考下图, 问题分析,整个系统每个页面,都有
读文件的过程 1 客户端(client)用 FileSystem 的open() 函数打开文件 2 DistributedFileSystem 用RP
<!--$sinatopbar--> 博客首页 登录 注册 警告:你的微三国主城告急 发博文 博文 <!--$end si
<!--$sinatopbar--> 博客首页 登录 注册 警告:你的微三国主城告急 发博文 博文 <!--$end si
实例262:使用存储过程实现用户注册 这是一个应用存储过程的实例 实例位置:光盘\mingrisoft\09\262
1.在命令行里些存储过程需要了解的一个命令:DELIMITER 使用 DELIMITER 将忽视 ; 作为语句的结束点
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号