2016-08-19 8 views
0

Es scheint, dass SQLite C-Schnittstelle Datenbank erstellen, die nicht sqlite_master Tabelle in den documentation beschrieben enthalten:SQLite C-Schnittstelle erstellt keine sqlite_master Tabelle

aus einem C/C++ Programm (oder ein Skript verwenden Tcl/Ruby/Perl/Python Bindungen) können Sie Zugriff auf Tabellen-und Indexnamen, indem Sie eine SELECT für eine spezielle Tabelle namens "SQLITE_MASTER". Jede SQLite-Datenbank hat eine SQLITE_MASTER Tabelle, die das Schema für die Datenbank

Der folgende Code erstellt eine Datenbank definiert, die nicht solche Tabelle (.tables Befehl gibt nichts) enthält:

#include <sqlite3.h> 

int main() 
{ 
    sqlite3* db; 
    sqlite3_open("helper.db", &db); 
    sqlite3_close(db); 
} 

Warum? Was soll ich tun, um es zu erstellen?

Antwort

2

Der .tables Befehl zeigt keine der internen Tabellen, aber sie existieren:

 
sqlite> create table t(x); 
sqlite> .tables 
t 
sqlite> select * from sqlite_master; 
table|t|t|2|CREATE TABLE t(x) 
+0

'select * from sqlite_master;' kehrt nicht alles in meinem Fall – FrozenHeart

+0

Weil Sie andere nicht haben Tabellen. Ohne die Master-Tabelle hätte die Abfrage jedoch zu einer Fehlermeldung geführt. –

+0

Ok, danke. Wo kann ich dann die 'sqlite_master' Tabelle sehen? – FrozenHeart

Verwandte Themen