Mysql存储过程

CALL DelAttrVal(IN ProcedureCId INT,IN ProcedurePId INT,ProcedureKeyName VARCHAR(40),OUT Succ INT)
#删除同一个服务器上所在不同数据库中表中数据
BEGIN 
	#声明
	DECLARE StorePId INT;
	DECLARE delsql VARCHAR(200);
	DECLARE StoreCId INT DEFAULT 0;
	
	#错误处理
	DECLARE EXIT HANDLER FOR SQLEXCEPTION
	BEGIN
		SET @intSucc = 0;
		SELECT @intSucc INTO Succ;
		ROLLBACK;
	END;
	#赋值
	SET @StorePId = ProcedurePId;
	SET @StoreCId = ProcedureCId;

	#旧系统
	#获取公社的AttrID
	CALL AttrSys.GetAttrId(ProcedureKeyName,@AId);
	SELECT @AId INTO @PAttrId;

	#新系统
	#获取数据库、表等信息新系统使用
	CALL AttrSys.AttrInit(ProcedureKeyName, @db, @tb, @md5key);
	SELECT @db, @tb, @md5key INTO @dbName,@tbName,@Strmd5Key;


	START TRANSACTION;#开启事务

	#新系统数据删除
	SET @delsql = CONCAT("Delete FROM ",@dbName,".",@tbName," WHERE `Cid` = ",@StoreCId," AND `Pid` = ",@StorePId," AND `AttrKey` = '",@Strmd5Key,"'");
	PREPARE stmt FROM @delsql;
	EXECUTE stmt;
	#旧系统数据删除
	IF @StoreCId !=0 THEN#取memberId
		CALL AttrSys.getMemberId(@StoreCId, @StorePId, @mid);
		SELECT @mid INTO @intMemberId;
		SET @StorePId = @intMemberId;
	END IF;	
	Delete FROM CommunityRelationSys.DataAttrVal WHERE `Pid` = @StorePId AND `AttrId` = @PAttrId;
	COMMIT;
	SET @intSucc = 1;
	SELECT @intSucc INTO Succ;
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值