【发布时间】:2015-03-11 17:59:02
【问题描述】:
我有一个 Postgresql 触发器,见下文。我的问题是当我添加一个新行并将官员角色设置为 USER 并将请求的优先级设置为 HIGH 时,我应该获得未授权但我获得了授权。当我更新行时,触发器触发并将单元格更改为未授权。有没有人了解这一点并可以为我提供解决方案? :) 为什么它不适用于插入和更新?
CREATE OR REPLACE FUNCTION priority_authorization() RETURNS trigger AS $BODY$
BEGIN
IF ((NEW.t_officer_role = 'USER') AND (NEW.priority_of_request = 'HIGH'))THEN
NEW.t_priority_auth :='NOT AUTHORIZED';
ELSEIF NEW.t_officer_role = 'INVALID' THEN
NEW.t_priority_auth :='NOT AUTHORIZED';
ELSE
NEW.t_priority_auth :='AUTHORIZED';
END IF;
RETURN NEW;
END; $BODY$ LANGUAGE plpgsql VOLATILE;
CREATE TRIGGER priority_authorization_trigger BEFORE INSERT OR UPDATE ON durs_centroid
FOR EACH ROW
EXECUTE PROCEDURE priority_authorization();
【问题讨论】:
标签: postgresql triggers