Kaskade Auslöst, die in SQLite

Ich habe folgende DB-Struktur in SQLite:

Kaskade Auslöst, die in SQLite

Möchte ich einen trigger erstellen, immer wenn ich löschen ein Land alle zugehörigen Landkreise, Gemeinden und Pfarreien werden auch gelöscht (wie MySQL mit InnoDB), ich habe versucht, mit dem SQLite-Trigger und kam mit dieser:

Bezirke:

CREATE TRIGGER [delete_country]
BEFORE DELETE
ON [countries]
FOR EACH ROW
BEGIN
DELETE FROM districts WHERE districts.id_countries = id;
END

Gemeinden:

CREATE TRIGGER [delete_district]
BEFORE DELETE
ON [districts]
FOR EACH ROW
BEGIN
DELETE FROM municipalities WHERE municipalities.id_districts = id;
END

Pfarreien:

CREATE TRIGGER [delete_municipality]
BEFORE DELETE
ON [municipalities]
FOR EACH ROW
BEGIN
DELETE FROM parishes WHERE parishes.id_municipalities = id;
END

Ich noch nicht getestet, die delete_district und delete_municipality - Trigger, da bekomme ich ein eigenartiges Verhalten an den delete_country trigger: beim löschen einer Land nur die erste bezieht district wird gelöscht, alle anderen zugehörigen Bezirken in der Tabelle bleiben. Was mache ich falsch?

InformationsquelleAutor Alix Axel | 2009-06-13
Schreibe einen Kommentar