在postgresql中插入CREATE规则



我有三个表。我需要id值不要在两个表之间相交(相对于一对一(。例如,用户=>学生和讲师。用户不能既是教师又是学生。决定通过规则插入来实现它,但存在无限递归的问题。

在这个例子中,我试图找到新的。IdPersonal在讲师表中,如果没有,则向学生添加新记录:

CREATE OR REPLACE RULE "InsertId" AS ON INSERT TO "Student" 
WHERE (NOT (NEW."IdPersonal" IN ( SELECT "Lecturer"."IdPersonal" FROM public."Lecturer")))
DO INSERT INTO "Student"("Id", "IdPersonal", "IdGroup") 
OVERRIDING SYSTEM VALUE VALUES (null, New."IdPersonal", New."IdGroup");

简单的解决方案是使用相同的序列来填充两个表的id

最新更新