【发布时间】:2020-12-29 10:52:00
【问题描述】:
对于在INSERT 或UPDATE 之前发生的触发器,我的代码几乎相同,
而不是创建 2 个触发器,有没有办法知道触发器内部动态发生的事件类型?
例子:
CREATE OR REPLACE FUNCTION UpsertClientLog() RETURNS TRIGGER AS $$
DECLARE action_type VARCHAR(255);
BEGIN
IF (event == 'INSERT') THEN
action_type = 'Create'
ELSE
action_type = 'Update'
END IF;
-- Same code from here on out ..
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER UPSERT_CLIENT_LOG BEFORE INSERT OR UPDATE ON client
FOR EACH ROW EXECUTE PROCEDURE UpsertClientLog();
【问题讨论】:
标签: sql postgresql triggers sql-update sql-insert