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 🙂

Skomentuj

Proszę zalogować się jedną z tych metod aby dodawać swoje komentarze:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s

Ta witryna wykorzystuje usługę Akismet aby zredukować ilość spamu. Dowiedz się w jaki sposób dane w twoich komentarzach są przetwarzane.