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 に答える