私のアプリケーションにはテーブルがあります。テーブルPROJECTS
のスキーマは次のとおりです。
CREATE TABLE PROJECTS (Id INTEGER PRIMARY KEY, Name TEXT, ParentId INTEGER, FOREIGN KEY (ParentId) REFERENCES PROJECTS (Id) ON DELETE CASCADE ON UPDATE CASCADE);
そしてPRAGMA foreign_keys
これで。
しかし、Javaコードから行を更新しようとすると、例外android.database.sqlite.SQLiteConstraintException
がスローされ、 foreign key constraint failed (code 19)
.
コード。
mDatabase.update(mTableName, getContentValues(projectObject), primaryKeyColumn + "=?", new String[] { projectObject.getId()});
外部キーにはON UPDATE CASCADE制約がありますが、失敗する理由がわかりません。
NOTE getContentValues()
メソッドは、android.content.ContentValues
提供された値オブジェクトからオブジェクトを作成するためのものです。