在触发器函数(PostgreSQL)中检查属性



我在学校有一项任务,要求我创建一个表和一个触发器。我真的不知道如何解释,但我如何检查cID是否在触发器函数的select语句中?基本上,我的目标是只允许不在";从Example2自然联接Example3"中选择*;。有人能帮我吗?非常感谢。

CREATE TABLE Example(
cID INTEGER REFERENCES Example2(attr),
level INTEGER CHECK (level BETWEEN 1 AND 10)); 

CREATE FUNCTION exp() RETURNS TRIGGER AS
$$
BEGIN
IF EXISTS (select * from Example2 natural join Example3) THEN
RAISE EXCEPTION '...';
END IF;
return null;
END; $$ language plpgsql;

CREATE CONSTRAINT TRIGGER trg
AFTER INSERT OR UPDATE ON Example
FOR EACH ROW
EXECUTE PROCEDURE exp();
CREATE FUNCTION exp((将触发器返回为$$开始如果存在(从示例2a中选择1,其中a.cID=new.cID(,则引发异常"…";结束IF;return return NEW;结束;$$语言plpgsql

最新更新