更新错误后的DB2触发器

时间:2013-04-08 07:04:05

标签: php sql db2

这是我第一次使用php在我的网站上使用触发器。我想要实现的是当条件和位置字段(位于库存表中)更新时,触发器将向LOG表插入一行。

以下是我改变条件和位置字段时显示的错误:

SQL0723N An error occurred in a triggered SQL statement in trigger "DB2ADMIN.CONDITI".        
Information returned for the error includes SQLCODE "-433", 
SQLSTATE "22001" and message tokens "Condition changed from bad ". SQLSTATE=09000 SQLCODE=-723

这是我的触发器代码,我使用data studio创建了触发器,并且成功了:

我已经编辑了我的触发器代码和日志表结构,但仍然产生相同的错误

CREATE TRIGGER DB2ADMIN.CONDITION_LOG AFTER UPDATE OF CONDITION, LOCATION ON DB2ADMIN.INVENTORY 
REFERENCING OLD AS o NEW AS n
FOR EACH ROW MODE DB2SQL NOT SECURED 
INSERT INTO LOG VALUES ('',CURRENT TIMESTAMP, o.CONDITION, n.CONDITION, o.LOCATION, n.LOCATION);

1 个答案:

答案 0 :(得分:2)

下载示例更新触发器

这可能无法解答您的问题,但我认为它可以帮助您构建更好的Trigger语句:

DELIMITER $$
CREATE
    TRIGGER `blog_after_update` AFTER UPDATE
    ON `blog`
    FOR EACH ROW BEGIN
        IF NEW.deleted THEN
            SET @changetype = 'DELETE';
        ELSE
            SET @changetype = 'EDIT';
        END IF;
        INSERT INTO audit (blog_id, changetype) VALUES (NEW.id, @changetype);
    END$$
DELIMITER ;

资源链接(source