SQLite Blob löschen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Morty
Beiträge: 268
Registriert: 22.10.2004 07:20
Wohnort: Erfurt
Kontaktdaten:

SQLite Blob löschen

Beitrag von Morty »

Guten Abend an alle.

Wie es der Titel schon verrät, schaffe ich es nicht die binär-Daten eines BLOB Feldes zu löschen.

Etwas genauer:
Ich speichere in einer Tabelle unteranderem auch eine Datei. Lösche ich später den gesamten Eintrag mittels "DELETE FROM ..." verschwindet zwar der Datensatz an sich, die eigentliche Datenbank Datei behält aber ihre Größe bei. Daraus schließe ich, dass die Rohdaten der eingebundenen Datei noch irgendwie drin stehen, was nicht sein sollte.
Weiß da jemand einen work-around oder so um wirklich alle Daten eines Eintrages zu löschen?

Ich nutze PB 4.10 mit der SQLite3 aus der PBOSL.

Schönen Dank schonmal und gute Nacht

Morty
HJA
Beiträge: 18
Registriert: 21.11.2007 16:58
Wohnort: Wuppertal

Beitrag von HJA »

Hallo Morty,

wenn man 1 Datensatz löscht, ist der zwar nach aussen hin gelöscht, jedoch verbleibt der leere Platz in der Datenbank. Insbesondere wenn man oft was löscht verbleiben auch viele Lücken in der DB. SQLite nutzt diese freien Stellen später für neue Daten und füllt diese wieder, soweit das vom Platz hinkommt.

Wenn Du den gelöschten Platz vollständig aus der DB entfernen willst, schick das Kommando VACUUM an die Db, dann wird die DB sozusagen reorganisiert und alles gelöschte wirklich ganz entfernt.

Gruss
hja
Morty_tmp

Beitrag von Morty_tmp »

Vielen Dank, werde es umgehend probieren. Ist auchmal gut zu wissen, dass sqlite den Platz wieder füllen würde.

Morty
Antworten