我想创建一个捕获INSERT
和UPDATE
的触发器,并根据操作执行某些操作。在Oracle中,可以这样做:
CREATE OR REPLACE TRIGGER ABC_BIU BEFORE INSERT OR UPDATE ON ABC
FOR EACH ROW
BEGIN
IF INSERTING THEN
...
END IF;
...
END;
Here提到INSERTING
是与Oracle中的TRIGGER
结合使用的关键字,here您可以看到用法:
IF INSERTING THEN ... END IF;
IF UPDATING THEN ... END IF;
答案 0 :(得分:1)
首先,你需要在Postgres中使用单独的触发器功能:
CREATE OR REPLACE FUNCTION trg_abc_biu()
RETURNS trigger AS
$func$
BEGIN
CASE TG_OP -- to fork depending on operation
WHEN ' INSERT' THEN
-- do something
WHEN ' UPDATE' THEN
-- do something
ELSE
RAISE EXCEPTION 'This trigger function expects INSERT or UPDATE!';
END CASE;
RETURN NEW;
END
$func$ LANGUAGE plpgsql;
...然后可以在触发器(或几个)中使用:
CREATE TRIGGER abc_biu
BEFORE INSERT OR UPDATE ON abc
FOR EACH ROW EXECUTE PROCEDURE trg_abc_biu();
相关答案以及更多细节: