2

我有 2 张桌子:

表格1-create table table1(_id integer primary key, content text not null );

表 2-create table table2(_id integer primary key, id_parent integer, content text not null , CONSTRAINT [FK_table2_id_parent] FOREIGN KEY (id_parent) REFERENCES table1 (_id) ON DELETE CASCADE );

但是DELETE CASCADE没有做任何事情......有人知道我做错了什么吗?

[编辑:

当我尝试从 table1 中删除行时,我可以,但是当我查找 table2 时,记录都在那里......即使是那些拥有从 Table1 中不再存在的 id_parent 的人。]

我使用的是安卓 2.2。

4

1 回答 1

4

首先确保您使用的创建表命令在语法和逻辑上是正确的。

如果是,那么这是由于以下原因:

声明和定义外键并不能真正应用它们。 您需要明确地对数据库中的外键约束。

if (!db.isReadOnly()) {
            // Enable foreign key constraints
            db.execSQL("PRAGMA foreign_keys=ON;");
        }
于 2012-05-17T12:21:20.933 回答