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
Mysql存储过程
最新推荐文章于 2024-04-15 10:15:00 发布