2017-05-27 3 views
0

Verwenden von SQLite3 und Ubuntu 14.04-LTS. Beim Erstellen einer virtuellen Tabelle für eine FTS-Suche konnte ich falsch schreiben. Jetzt kann ich die Tabelle nicht entfernen. Dies ist, was ich wollte:Beschädigte Datenbanktabelle kann nicht gelöscht werden

CREATE VIRTUAL TABLE tFind USING FTS4(main TEXT, base TEXT, hash TEXT); 

Aber ich „5“ anstelle von „4“ erreicht haben muss, und jetzt kann ich nicht DROP die Tabelle. Wenn ich versuche ich diesen Fehler:

Error refreshing schema for table main.tFind : No such module FTS5

ich gesucht und gefunden Informationen über SQLite3 für Terminal (CLI), aber ich weiß nicht, wie innerhalb der Befehle zu verwenden.

Wie kann ich das reparieren? Ich habe viele hundert Datenzeilen und etwa ein Dutzend Tabellen, sodass ich nicht einfach eine neue Datenbank mit denselben Tabellen erstellen kann.

Antwort

0

Problem gelöst: Gefunden th folgenden "

Drop a table originally created with 'unknown tokenizer'?

Wo die

And then use the (very dangerous) PRAGMA writable_schema to remove the remaining information about this table from the system table:

PRAGMA writable_schema = ON; 
DELETE FROM sqlite_master WHERE type = 'table' AND name = 'tFind'; 

Vielen Dank an CL für diesen Beitrag

..
Verwandte Themen