在删除级联android 2.2

时间:2012-05-17 11:21:14

标签: android sqlite cascade cascading-deletes

我有两张桌子:

表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的人。]

我正在使用android 2.2。

1 个答案:

答案 0 :(得分:4)

首先确保您使用的create table命令在语法和逻辑上都是正确的。

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

声明和定义外键并不真正适用于它们。 您需要明确指出数据库中的外键约束。

if (!db.isReadOnly()) {
            // Enable foreign key constraints
            db.execSQL("PRAGMA foreign_keys=ON;");
        }