Hallo,
scheinbar werden recursive foreign keys bei MySQL4 ignoriert. Ich kann sie zwar ohne Fehler anlegen, aber sie existieren nach der Creation nicht.
Beispiel:
ich habe eine Tabelle test, bestehend aus ID und parent_id.
parent_id ist hierbei keine id auf den parent in einer anderen Tabelle, sondern exakt der gleichen Tabelle. Es handelt sich also um eine Tabelle, deren Hierarchie in der gleichen Tabelle via Recursion abgebildet wird.
Nun wäre es natürlich begrüßenswert, wenn beim Löschen des Parent-Records auch alle Child-Records gelöscht werden würden, per Foreign Key.
Den Foreign Key habe ich wie folgt angelegt:
ALTER TABLE test
ADD CONSTRAINT test_parent_id FOREIGN KEY ( parent_id ) REFERENCES test( id ) ON DELETE CASCADE ON UPDATE CASCADE ;
MySQL meldet keine Fehlermeldung. Allerdings kann ich diese Anweisung so oft ausführen, wie ich möchte, ohne den CONSTRAINT explicit löschen zu müssen. Denn nach dem Anlegen ist er nicht mehr vorhanden.
Weiß jemand, warum dies so ist? Gibt es ein Work-Arround?
Grüße, Hagen