0

我有以下触发器,我想在多个表中使用。那么,我怎样才能让它工作,而不是为每个表设置一个触发器呢?

BEGIN
    IF (TG_OP = 'UPDATE') THEN
        UPDATE test_table set rel_label = (select SUBSTR(release, 1, 5)) where uid=OLD.uid;
        RETURN OLD;
    ELSIF (TG_OP = 'INSERT') THEN
        UPDATE test_table  set rel_label = (select SUBSTR(release, 1, 5)) where uid=OLD.uid;
        RETURN NEW;
    END IF;
    RETURN NULL; -- result ignored since is an AFTER TRIGGER
END;

问候。

4

2 回答 2

0

请参阅有关EXECUTE命令的文档。

于 2013-03-06T13:47:15.687 回答
0

刚刚想出了一个直接的解决方案。

BEGIN
    IF (TG_OP = 'INSERT') THEN
                NEW.rel_label = (select SUBSTR(NEW.release, 1, 5));
                RETURN NEW;
    ELSIF (TG_OP = 'UPDATE') THEN
                NEW.rel_label = (select SUBSTR(NEW.release, 1, 5));
                RETURN NEW;
    END IF;
            RETURN NULL;

END;
于 2013-03-06T14:15:08.027 回答