mysql 存储过赋值_mysql存储过程 赋值

本文介绍了一个用于清理数据库中过期资源及其关联记录的存储过程。该过程通过游标遍历过期的资源记录,并依次删除这些资源的相关评论、访问记录等,最后删除资源本身及缩略图。

IN expireDate VARCHAR(20),IN resType INT

//-----------------------------------------------------------------------------------

BEGIN

DECLARE a,b,icon_id INT;

DECLARE cur_1 CURSOR FOR SELECT id FROM `tbl_resource` WHERE discriminator="RC_CON"  and robot_type=resType and  add_date<=expireDate;/*robot_type 代替资源类型*/

DECLARE CONTINUE HANDLER FOR NOT FOUND

SET b = 1;

OPEN cur_1;

REPEAT

FETCH cur_1 INTO a;

SELECT smallIcon INTO icon_id  FROM  tbl_resource WHERE id=a;     /*得到缩略图片的id*/

DELETE FROM `tbl_resource` WHERE parent_id=a;                /*删除这个content所含的资源*/

DELETE FROM `tbl_visitrecords` WHERE resource_id=a;        /*删除访问信息*/

DELETE FROM `tbl_detailrecord` WHERE resource_id=a;       /*删城祥细访问信息 */

DELETE FROM `tbl_comment` WHERE resource_id=a;           /*删城相关评论*/

DELETE FROM `tbl_resource` WHERE id=a;                          /*删城自己*/

IF icon_id >0 THEN

DELETE FROM `tbl_resource` WHERE id=icon_id;       /*删除图标*/

/*SELECT "删除了"+icon_id;*/

END IF;

UNTIL b = 1

END REPEAT;

CLOSE cur_1;

/*SELECT count(id) FROM `tbl_resource` WHERE discriminator="RC_CON"  and robot_type=0 and  add_date<=expireDate;*/

END

//相关语法

if Null is Null then

SELECT 23;

else

SELECT 45;

end IF;

//赋值

select @cnt := count(1) from tablenmae 和 select count(1) into @cnt from tablename 是等价的 。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值