2

我的更新触发器

BEGIN
DECLARE s VARCHAR(100);
IF (OLD.authUId <> NEW.authUId) THEN SET s = CONCAT(s,'&authUId=', OLD.authUId); END IF;
IF (OLD.autPId <> NEW.autPId) THEN SET s = CONCAT(s,'&autPId=', OLD.autPId); END IF;
.....

INSERT INTO l_dblog(src,newId,oldValue) VALUE('auth_up',new.authId,s);
END

插入行 oldValue 列总是空插入,我的问题是什么?

我有删除触发器是成功的工作

我的删除触发器:

 BEGIN
      DECLARE s VARCHAR(60);
      SET s = CONCAT('&authUId=', OLD.authUId,'&autPId=', OLD.autPId,'&authTypeId=', OLD.authTypeId,'&authValue=', OLD.authValue);   
    INSERT INTO l_dblog(src,newId,oldValue) 
     VALUE('auth_del',OLD.authId,s);
    END

谢谢...

4

1 回答 1

0

在更新查询中将变量 s 的默认值设置为空白,然后检查天气触发器是否工作。如果不是运行触发器后出现的错误。

BEGIN
DECLARE s VARCHAR(100) DEFAULT '';
IF (OLD.authUId <> NEW.authUId) THEN SET s = CONCAT(s,'&authUId=', OLD.authUId); END IF;
IF (OLD.autPId <> NEW.autPId) THEN SET s = CONCAT(s,'&autPId=', OLD.autPId); END IF;
.....

INSERT INTO l_dblog(src,newId,oldValue) VALUE('auth_up',new.authId,s);
END
于 2012-12-11T15:24:41.783 回答