SQLite C接口不会创建sqlite_master表

时间:2016-08-19 09:09:48

标签: c++ sqlite

似乎SQLite C接口创建的数据库不包含documentation中描述的sqlite_master表:

  

来自C / C ++程序(或使用Tcl / Ruby / Perl / Python的脚本)   您可以通过执行a来访问表和索引名称   在名为" SQLITE_MASTER"的特殊表上进行SELECT。每个SQLite数据库   有一个SQLITE_MASTER表,用于定义数据库的模式

以下代码创建了一个不包含此类表的数据库(.tables命令不返回任何内容):

#include <sqlite3.h>

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

为什么呢?我应该怎么做才能创造它?

1 个答案:

答案 0 :(得分:2)

.tables命令不显示任何内部表,但它们确实存在:

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