如何在 Flutter 中列出 SQFlite 数据库中的表名称?

S G*_*way 3 flutter sqflite

我尝试了以下方法,但只收到了整个数据库的信息。

listTables() async {
    sqflite.Database dbClient = await this.db;

    List<Map<String, dynamic>> tables = await dbClient
        .query('sqlite_master');

    print(tables);
  }
Run Code Online (Sandbox Code Playgroud)

我正在寻找数据库中存在的表名的列表。

ale*_*xtk 6

正如您在输出中看到的,架构很简单。sqlite_master表行有type = 'table'一个name列。

调试打印:

(await db.query('sqlite_master', columns: ['type', 'name'])).forEach((row) {
  print(row.values);
});
Run Code Online (Sandbox Code Playgroud)

得到类似的东西:

(table, Product)
(table, Client)
(table, Request)
(index, Request_clientId)
(index, Request_productId)
Run Code Online (Sandbox Code Playgroud)

您可以使用以下代码获取表名:

(table, Product)
(table, Client)
(table, Request)
(index, Request_clientId)
(index, Request_productId)
Run Code Online (Sandbox Code Playgroud)