【发布时间】:2020-10-02 18:36:50
【问题描述】:
我在学校有一个任务需要我创建一个表和一个触发器。 我真的不知道如何解释它,但我如何检查 cID 是否在触发器函数的 select 语句中? 基本上我的目标是只允许不在“SELECT * from Example2 natural join Example3”内的 cID 值。任何人都可以帮助我吗?谢谢。
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();
【问题讨论】:
-
不确定“只允许 cID 值”是什么意思?如果您提供显示您想要完成的任务的示例数据,这将更容易回答。
标签: sql postgresql triggers