2013-08-08 23 views
16

Chcę wiedzieć, jak odkurzać bazy danych sqlite. Próbowałem polecenia VACUUM składnia podręcznik dla całej bazy danych z wiersza poleceń:Jak odkurzać bazę danych sqlite?

$sqlite3 database_name "VACUUM;"; 

Ale to daje błąd jako:

near "database_name": syntax error. 

a także automatyczną Podciśnienie:

PRAGMA auto_vacuum = INCREMENTAL; 

i próbował dla konkretnego stołu:

VACUUM table_name; 

Ale bez rezultatu.

Odpowiedz

16

Nie należy podawać nazwy tabeli w składni. Działa tylko VACUUM.

Ponadto wyczyści tylko główną bazę danych, a nie wszystkie dołączone pliki bazy danych. Aby uzyskać więcej informacji, zobacz SQLite documentation.

+1

tę stronę sugeruje, że jego możliwości na table http://www.tutorialspoint.com/sqlite/sqlite_vacuum.htm –

+0

'VACUUM' z wiersza poleceń sqlite3 będzie tylko główną bazą VACUUM. Załączone bazy danych można ODKUPIĆ tylko z sqlite3 verison 'version 3.15.0'. Dla starszych wersji, nazwa bazy danych * musi * być określona, ​​działa ona z 'bash' jak wspomniano w @ yöliitäjä odpowiedź: ' $ sqlite3 database_name 'VACUUM;' ' –

1

Wydać polecenie tak:

$sqlite3 database_name 'VACUUM;' 

W rzeczywistości, jest to sposób to zrobić również inne zapytania z linii poleceń:

$sqlite3 database_name 'select * from tablename;'