以下のコードを使用してデータベースの参照整合性を確保しようとしましたが、GreenDao で動作していないようです。すべてのレコードを削除できます。一方、Sqlitemanager で削除しようとすると、トリガーが発生して削除操作が失敗します。
DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, Common.DBNAME, null)
{
@Override
public void onCreate(SQLiteDatabase db) {
super.onCreate(db);
db.execSQL("CREATE TRIGGER grupe_artikli BEFORE DELETE ON groups "+
"FOR EACH ROW BEGIN "+
"SELECT CASE " +
"WHEN ((SELECT id_group FROM products WHERE id_group = OLD._id) IS NOT NULL) "+
"THEN RAISE(ABORT, 'error') "+
"END; END;");
DaoSession session = new DaoMaster(db).newSession();
}
GreenDao はトリガーをサポートしていますか? または、データベースの参照整合性を維持する別の方法はありますか?