2013-08-08 18 views
16

Ich möchte wissen, wie sqlite Datenbank zu vakuumieren. Ich habe versucht, für die gesamte Datenbank von Eingabeaufforderung eine Syntax MANUAL VACUUM-Befehl:Wie sqlite Datenbank vakuumieren?

$sqlite3 database_name "VACUUM;"; 

Aber es gibt Fehler wie:

near "database_name": syntax error. 

und auch AUTO VACUUM:

PRAGMA auto_vacuum = INCREMENTAL; 

und versuchte, es für eine bestimmte Tabelle als:

VACUUM table_name; 

Aber kein Ergebnis.

Antwort

16

Sie müssen den Tabellennamen nicht in der Syntax angeben. Nur VACUUM funktioniert.

Außerdem werden nur die Hauptdatenbank und keine angefügten Datenbankdateien bereinigt. Weitere Informationen finden Sie im SQLite documentation.

+1

Diese Seite schlägt vor, dass ihre möglich auf die Tabelle http://www.tutorialspoint.com/sqlite/sqlite_vacuum.htm –

+0

'VACUUM' von sqlite3 Kommandozeile wird nur VACUUM Hauptdatenbank. Angehängte Datenbanken können nur von sqlite3 verison 'version 3.15.0' VACUUMED sein. Für ältere Versionen muss der Datenbankname * angegeben * werden, dies funktioniert von 'bash' wie in @ yöliitäjä erwähnt Antwort: ' $ sqlite3 datenbankname 'VACUUM;' ' –

1

Geben Sie den Befehl wie folgt aus:

$sqlite3 database_name 'VACUUM;' 

Wie in der Tat, dies ist die Art und Weise auch andere Abfragen von der Kommandozeile zu tun:

$sqlite3 database_name 'select * from tablename;'