【问题标题】:How to create a trigger on after insert without returning NEW in postgres?如何在插入后创建触发器而不在postgres中返回NEW?
【发布时间】:2018-01-21 07:52:06
【问题描述】:

为什么要插入后呢?怎么写这样的:

    CREATE FUNCTION update_auto_dates() RETURNS trigger AS $update_auto_dates$
    BEGIN
    INSERT INTO dates (dates_user, dates_object, dates_object_id, dates_date) VALUES (NEW.user, NEW.object, NEW.object_id, NEW.date);
    END;
$update_auto_dates$ LANGUAGE plpgsql;

CREATE TRIGGER update_auto_dates AFTER INSERT ON log
    FOR EACH STATEMENT EXECUTE PROCEDURE update_auto_dates();

【问题讨论】:

    标签: sql database postgresql triggers


    【解决方案1】:

    The trigger function is required to return something 因为它的定义没有定义它被用作后触发器。这仅在触发器定义中已知。

    添加RETURN NEW; 语句可能是一个好主意,可以防止将来(意外)用作 BEFORE 触发器时出现意外情况。您也可以选择RETURN NULL;,因为 AFTER 触发器的结果会被忽略。

    【讨论】:

    • 我希望你不要介意这个链接,因为它本身就可以很好地回答,并且会成为你的答案
    猜你喜欢
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多