我在表中添加了一个(新的)第二个外键a
。它的第一个外键是可选的,因此ON DELETE SET NULL
对外键的约束。第二届外键是强制性的,因此(新)的约束NOT NULL
上a1
,并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
在限制a1
和a2
。在此类删除的情况下,我希望发生的是a1, a2 …