我在表中添加了一个(新的)第二个外键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 …