Born2Burn
30-06-2005, 23:33
Hallo,
ich benutze IBM DB2 und möchte dabei alle Datensätze aus einigen voneinander abhängigen Tabellen löschen. Die Tabellen selbst sind mit Fremdschlüsselbeziehungen miteinander verknüpft.
Da ich die Reihenfolge des Löschens nicht festlegen möchte, und da es auch Tabellen mit zyklischen Abhängigkeiten gibt, wollte ich alle Tabellen innerhalb einer Transaktion löschem.
con.setAutoCommit(false);
for(String tabName : nameLst){
con.createStatement().execute(
"DELETE FROM " + tabName);
}
con.commit();
con.setAutoCommit(true);
Fehlermeldung wird in Form einer SQLException mit Code -532 ausgegeben. Sinngemäß soviel wie das ich die Tabelle B nicht vor A löschen darf, da eine Fremdschlüsselbeziehung verletzt wird.
Leider fällt mir keine Lösung mehr ein, ein weiterer Versuch war der manuelle Aufbau einer solchen TA mittels
con.createStatement().execute("begin transaction; DELETE FROM A; DELETE FROM B; COMMIT");
brachte leider auch keinen Erfolg, zwar wurde kein Fehler mehr gemeldet, die Datenbank aber auch leider nicht gelöscht.
Bin dankbar für alle Hinweise, vielen Danke
ich benutze IBM DB2 und möchte dabei alle Datensätze aus einigen voneinander abhängigen Tabellen löschen. Die Tabellen selbst sind mit Fremdschlüsselbeziehungen miteinander verknüpft.
Da ich die Reihenfolge des Löschens nicht festlegen möchte, und da es auch Tabellen mit zyklischen Abhängigkeiten gibt, wollte ich alle Tabellen innerhalb einer Transaktion löschem.
con.setAutoCommit(false);
for(String tabName : nameLst){
con.createStatement().execute(
"DELETE FROM " + tabName);
}
con.commit();
con.setAutoCommit(true);
Fehlermeldung wird in Form einer SQLException mit Code -532 ausgegeben. Sinngemäß soviel wie das ich die Tabelle B nicht vor A löschen darf, da eine Fremdschlüsselbeziehung verletzt wird.
Leider fällt mir keine Lösung mehr ein, ein weiterer Versuch war der manuelle Aufbau einer solchen TA mittels
con.createStatement().execute("begin transaction; DELETE FROM A; DELETE FROM B; COMMIT");
brachte leider auch keinen Erfolg, zwar wurde kein Fehler mehr gemeldet, die Datenbank aber auch leider nicht gelöscht.
Bin dankbar für alle Hinweise, vielen Danke