小编Gae*_*aem的帖子

SQLite:ON DELETE CASCADE 无法正常工作

我经常尝试并查看其他论坛帖子,但它们对我没有帮助。这是我的问题:我创建这样的表:

CREATE TABLE IF NOT EXISTS Parent
    (Id INTEGER PRIMARY KEY,
     Name STRING);
CREATE TABLE IF NOT EXISTS Child
    (Id INTEGER,
     Name STRING,
     ParentId INTEGER,
     PRIMARY KEY (Id, ParentId)
     FOREIGN KEY (ParentId) REFERENCES Parent (ParentId) ON DELETE CASCADE);
Run Code Online (Sandbox Code Playgroud)

之后我插入这个:

INSERT INTO Parent (Id, Name) VALUES (1, 'Michael');
INSERT INTO Child (Id, Name, ParentId) VALUES (1, 'Paul', 1);
Run Code Online (Sandbox Code Playgroud)

好吧!现在,我们在每个表中都有一行,其中有一个父项和一个子项。现在我想删除父级:

DELETE FROM Parent WHERE Id = 1;
Run Code Online (Sandbox Code Playgroud)

怎么了?表“Parent”中的行不再存在,但表“Child”中的行仍然存在,即使我说:“ON DELETE CASCADE”。

sqlite

3
推荐指数
1
解决办法
4992
查看次数

标签 统计

sqlite ×1