Marc Reichelt: SQL: Lösche alle Einträge von Tabelle2 ohne Referenz zu Tabelle1

Beitrag lesen

Hallo an alle,

ich arbeite derzeit an einer Android-Applikation. Diese verwendet einen Cache auf SQLite-Basis mit mehreren Tabellen, die sich referenzieren.

Konkret habe ich zwei Tabellen. Tabelle 1 und 2 haben beide einen primären Index "id". Tabelle 2 hat zusätzlich ein Feld namens "tabelle1_id", welches eine Referenz auf tabelle1.id darstellt. Wenn ein Eintrag von Tabelle 1 mit id=3 gelöscht wird, sollen alle Einträge der Tabelle 2 mit tabelle1_id=3 ebenfalls gelöscht werden. Also genau das, was man mit einem einfachen FOREIGN KEY lösen könnte.

Die Syntax von SQLite erlaubt es zwar, Tabellen mit FOREIGN KEYs anzulegen, diese werden aber nicht ausgewertet, da eine entsprechende Implementierung dafür zu fehlen scheint.

Nun möchte ich diesen Befehl also von Hand aufrufen:
"Lösche alle Einträge von tabelle2, deren tabelle1_id nicht in tabelle1.id vorkommen"

Welches ist die eleganteste Methode, um diesen Befehl auszuführen?

Freundliche Grüße & vielen Dank im Voraus

Marc Reichelt || http://www.marcreichelt.de/

--
DPRINTK("Last time you were disconnected, how about now?");
        linux-2.6.6/drivers/net/tokenring/ibmtr.c
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)