触发器现在将允许在 PostgreSql 中的特定日期对 table 进行任何操作

Trigger that will now allow any operation on a table on particular days in PostgreSql

如何创建一个触发器,不允许在特定日期的 table 'Customer' 上执行任何操作(插入 || 更新 || 删除),例如在周末和 7 月 4 日?

我知道触发器对某些事件(更新、插入等)执行存储过程,并且该函数检查星期几是否是周末,如果不让它发生,它应该取消该事件。我的问题是最后一部分,我如何 cancel/execute 基于条件的事件(插入等)?

只要对 trigger functions and some date functions 有最低限度的了解,您就可以得出这样的结论:

CREATE FUNCTION check_sunday() RETURNS trigger AS $$
    BEGIN
        IF EXTRACT(DOW FROM NOW()) = 0 THEN
            RAISE EXCEPTION 'You cannot do this on Sunday!';
        END IF;
        RETURN NEW;
    END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER foo_trigger ON foo
BEFORE INSERT EXECUTE PROCEDURE check_sunday();