Postgres 约束参考

Postgres constraint references

定义字段时,有什么区别:

,cadastre           integer NOT NULL

,CONSTRAINT fkey_affaire_vl_cadastre FOREIGN KEY(cadastre)
    REFERENCES public.vl_cadastre (obj_id) MATCH SIMPLE
    ON UPDATE RESTRICT ON DELETE RESTRICT

AND 直接

,cadastre           integer NOT NULL REFERENCES public.cadastre (obj_id)

两种结构都创建了一个外键。短表达式称为 内联 外键。

主要区别在于长表达式允许您选择约束的名称,而第一个表达式则不允许。如果您稍后需要操作约束(例如,删除它),这会很方便,因为您事先知道它的名称。

在您的代码中,第一个示例使用选项 on update restricton delete restrict。这也支持外键声明的内联形式。