2

我有以下触发器检查已用空间 > 配额并将配额增加 5。配额已成功增加,但 RAISE NOTICE 未出现在屏幕上。

 CREATE OR REPLACE FUNCTION checkspaceused() RETURNS TRIGGER AS $cssubscription$
 DECLARE
 new_spaceused INTEGER; 
 new_id INTEGER; 
 new_quota INTEGER ;
 BEGIN
    IF(TG_OP='UPDATE') THEN
        IF NEW.spaceused > NEW.quota THEN
        RAISE NOTICE 'Limit breached';
        UPDATE subscription SET quota = NEW.spaceused + 5 where u_id = NEW.u_id; 
        END IF ; 

    END IF;

RETURN NEW; 
END;
$cssubscription$ LANGUAGE plpgsql;
CREATE TRIGGER checkspaceused AFTER UPDATE ON subscription FOR EACH ROW EXECUTE PROCEDURE checkspaceused();

请帮忙。

4

2 回答 2

9

检查client_min_messages会话中的值 - 应该NOTICE或稍后才能看到通知。

于 2012-04-15T12:22:58.680 回答
2

在执行函数之前执行此操作..

SET client_min_messages TO NOTICE;

...如果使用 pgAdmin,然后检查消息选项卡

于 2020-06-13T14:47:01.660 回答