Android に次のデータベースがあります。
Table A: [_id, value1]
Table B: [_id, fk_tablea, value2]
コード付き:
db.execSQL("CREATE TABLE IF NOT EXISTS table_A ( "
+ "_id long primary key , value1 long );");
db.execSQL("CREATE TABLE IF NOT EXISTS table_B ( "
+ "_id long primary key ,fk_tablea long , value2 long,"
+ "FOREIGN KEY (fk_tablea) REFERENCES table_A (value1) ON DELETE CASCADE);");
そして、私が(テーブルを空にして)作ると:
ContentValues values= new ContentValues();
values.put("_id",1);
values.put("value1",900);
mDb.replace("table_A", null, values);
また
mDb.execSQL("INSERT OR REPLACE INTO table_A(_id,value1) VALUES (1,900)");
の
mDb.insertWithOnConflict("table_A", null, values, SQLiteDatabase.CONFLICT_REPLACE);
コンパイル中: INSERT OR REPLACE INTO table_A(_id,value1) VALUES (2,900)という例外によりクラッシュし ます。しかし、置換の代わりに挿入を使用する場合
ContentValues values= new ContentValues();
values.put("_id",1);
values.put("value1",900);
mDb.insert("table_A", null, values);
正しく動作しますが、なぜそれが起こっているのですか? どうすれば解決できますか?前もって感謝します