PRAGMA foreign_keys – #25

W aplikacji miałam problem z kaskadowym usuwaniem rekordów z tabelek. Podczas usuwania posiłków z bazy, w tabelkach z zaplanowanymi obiadami wisiały stare wpisy. To powodowało, że kiedy dodawałam kolejne posiłki to od razu pojawiały się one na liście obiadów. Trzeba było to naprawić.

Okazało się, że domyślnie SQLite nie obsługuje kluczy obcych… cóż, na szczęście można to zmienić za pomocą jednej instrukcji sql. Na nieszczęście trzeba ją wysyłać przy każdym otwarciu bazy danych…


@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
db.execSQL("PRAGMA foreign_keys=ON");
}

Więcej o użyciu PRAGMA tutaj. Według tej strony podejście do kluczy obcych może się zmienić w przyszłych wersjach SQLite’a. Oby 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

This site uses Akismet to reduce spam. Learn how your comment data is processed.