小编Dru*_*rux的帖子

Postgres 外键只有部分列的 ON DELETE SET NULL

我在表中添加了一个(新的)第二个外键a。它的第一个外键是可选的,因此ON DELETE SET NULL对外键的约束。第二届外键是强制性的,因此(新)的约束NOT NULLa1,并a2与(新)的约束ON DELETE CASCADE外键。第二个外键还包含第一个外键的列的子集。

CREATE TABLE a
(
  a0 INTEGER NOT NULL PRIMARY KEY,
  -- other columns
  a1 INT NOT NULL,
  a2 INT NOT NULL,
  a3 INT,
  a4 INT,
  FOREIGN KEY (a1, a2)         REFERENCES b ON DELETE CASCADE,
  FOREIGN KEY (a1, a2, a3, a4) REFERENCES c ON DELETE SET NULL
);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,我现在可以不再DELETE FROM c,因为这将无效并NOT NULL在限制a1a2。在此类删除的情况下,我希望发生的是a1, a2 …

postgresql foreign-key postgresql-9.4

7
推荐指数
1
解决办法
5315
查看次数

标签 统计

foreign-key ×1

postgresql ×1

postgresql-9.4 ×1