Datensätze löschen

Previous  Next

 

 

 

Letzte Änderung 24.02.2010

Datensätze löschen

Für dieses Beispiel benötigen Sie das Beispiel-Projekt fahrzeuge.xdev

 

Mit der Anweisung hmtoggle_plus1 XDEV DeleteDB | XDEV NLS: XDEV AusDatenbankLöschen können Sie Datensätze gezielt in einer Datenbank-Tabelle löschen. Dazu müssen Sie lediglich die Datenbank sowie eine Datenbank-Tabelle angeben. Mit Hilfe einer Bedingung können Sie gezielt eingrenzen, welche Datensätze gelöscht werden sollen.

 

clip0521

 

 

Datenbank löschen Assistent:

 

Option

Erklärung

Datenbank

 

Virtuelle Tabelle, in der die zu übertragenden Datensätze stehen müssen.

 

 

Name der

DB-Tabelle (Ziel)

Name der Datenbank-Tabelle, in welche die Datensätze geschrieben werden sollen. Ggf. müssen Sie hier den Namen der Datenbank-Tabelle manuell eingeben.

 

 

Bedingung

definieren

Mit Hilfe einer Bedingung können Sie festlegen, welche Datensätze aus der angegebenen Datenbank-Tabelle gelöscht werden sollen.

 

 

» Reihenfolge beachten «

In einer relationalen Datenbank gibt es Abhängigkeiten, die Sie beim Löschen von Daten unbedingt beachten müssen. Häufig müssen nämlich auch Daten in anderen Tabellen gelöscht werden. Dabei müssen Sie die Reihenfolge beachten. Wenn Sie zum Beispiel in einer Fahrzeugverwaltung eine Automarke löschen möchten, müssen Sie zuerst in der Tabelle FAHRZEUGE der entsprechenden Marke löschen, anschließend in der Tabelle MODELLE alle Modelle der entsprechenden Marke und erst zum Schluss die Marke in der Tabelle HERSTELLER.

 

 

» Löschen nur mit Transaktionen «

Wenn Sie auf Grund von Abhängigkeiten Daten in mehreren Tabellen löschen müssen, dann sollten Sie dies immer nur mit Hilfe einer Transaktion durchführen. Denn falls es beim Löschen zu einem unvorhergesehenen Fehler kommen sollte, wodurch nicht alle Daten wie geplant gelöscht werden können, dann führt dies zu inkonsistenten Daten in Ihrer Datenbank. Kommt es dagegen während einer Transaktion zu einem Fehler, dann stellt die Datenbank automatisch den Ausgangszustand wieder her (Rollback).

 

 

» Philosophie «

Vor allem bei großen Datenbeständen bestehen häufig sehr komplexe Abhängigkeiten zwischen den Daten, wodurch für das Löschen von Daten ebenso komplexe Lösch-Prozeduren entwickelt werden müssen. Das Risiko, dass dabei versehentlich falsche Daten gelöscht werden, ist sehr hoch. In vielen Datenbank-Anwendungen werden deshalb Daten oftmals sogar gar nicht physikalisch gelöscht, sondern lediglich als gelöscht markiert. Dies kann z.B. mit Hilfe eines simplen Flags erfolgen, für das man lediglich eine zusätzliche Spalte anlegen muss. Darüber hinaus gibt es auch nicht-technische Gründe, die gegen das physikalische Löschen von Daten sprechen, u.a. rechtliche Pflichten zur dauerhaften Archivierung von Daten, z.B. Rechnungs- oder Transaktionsdaten. Entsprechende Punkte sollten vor der Implementierung von Lösch-Funktionen bedacht werden.

 

 

Hinweis: Komplexere Lösch-Prozeduren sollten ausschließlich als Transaktion durchgeführt werden, welche bei einem Fehler automatisch von der Datenbank rückgängig gemacht wird. Transaktionen werden i.d.R. von allen wichtigen Datenbanken unterstützt.

 

Tipp: Die Anweisung hmtoggle_plus1 XDEV DeleteDB | XDEV NLS: XDEV AusDatenbankLöschen sollten Sie immer in eine hmtoggle_plus0 try-catch Anweisung setzen.

 

Basiswissen: Relationale Datenbanken, Virtuelle Tabellen.