2010-02-19 3 views
5

Ich möchte alle Tabellen löschen, die keine Zeilen haben.Wie werden alle leeren Tabellen in SQLite gelöscht?

Wie alle leeren Tabellen in SQLite löschen?

EDIT
Ich brauche das auf einem Handy tun (keine Shell dort). Auf einem Windows Mobile-Telefon.

+1

Höchstwahrscheinlich kann in Shelling-Skript oder Perl getan werden. – Yada

+0

Ich muss dies auf einem Mobiltelefon tun (keine Shell dort). Auf einem Windows Mobile-Telefon. – Pentium10

+0

Wir müssen wissen, welche Sprache (n) verfügbar sind (denn ich bin mir sowieso nicht bewusst). –

Antwort

7

Tabellen können gelöscht werden, unabhängig davon, ob sie Daten enthalten, wenn der Befehl ausgeführt wird. Keine Datenbank, die sonst funktioniert. Also das heißt:

1) Abrufen einer Liste von Tabellen -

SELECT name 
    FROM sqlite_master 
WHERE type = 'table' 

2) Iterate über diese Liste, COUNT (*) verwenden, um zu bestimmen, ob Zeilen in einer Tabelle existieren:

SELECT COUNT(*) 
    FROM ~table 

3) Wenn die Zahl zurückgegeben wird, ist kleiner als 1, führen Sie eine DROP-Anweisung:

DROP TABLE ~table 

SQLite nicht über fu Unterstützung für gespeicherte oder gespeicherte Prozeduren - Sie müssen dies von Ihrer Anwendung aus tun.

+0

Was ist das ~ vor dem Tabellennamen steht? – Pentium10

+0

@ Pentium10: psuedo Variable. Wenn ich $ benutze, könnten Leute es für eine PHP-Variable halten. '@' ist MySQL & SQL Server-Syntax ... –

+0

@ Pentium10: Es ist eine Falle! – Hogan

Verwandte Themen