如何在 Flutter 的 SQFlite 数据库中列出 table 名称?
How do I list the table names in a SQFlite Database in Flutter?
我试过以下,只收到整个数据库的信息。
listTables() async {
sqflite.Database dbClient = await this.db;
List<Map<String, dynamic>> tables = await dbClient
.query('sqlite_master');
print(tables);
}
我想获取数据库中存在的 table 个名称的列表。
如您在输出中所见,架构很简单。 sqlite_master
table 行有 type = 'table'
和 name
列。
调试打印:
(await db.query('sqlite_master', columns: ['type', 'name'])).forEach((row) {
print(row.values);
});
得到类似的东西:
(table, Product)
(table, Client)
(table, Request)
(index, Request_clientId)
(index, Request_productId)
您可以通过以下代码获取table个名字:
var tableNames = (await db
.query('sqlite_master', where: 'type = ?', whereArgs: ['table']))
.map((row) => row['name'] as String)
.toList(growable: false);
我试过以下,只收到整个数据库的信息。
listTables() async {
sqflite.Database dbClient = await this.db;
List<Map<String, dynamic>> tables = await dbClient
.query('sqlite_master');
print(tables);
}
我想获取数据库中存在的 table 个名称的列表。
如您在输出中所见,架构很简单。 sqlite_master
table 行有 type = 'table'
和 name
列。
调试打印:
(await db.query('sqlite_master', columns: ['type', 'name'])).forEach((row) {
print(row.values);
});
得到类似的东西:
(table, Product)
(table, Client)
(table, Request)
(index, Request_clientId)
(index, Request_productId)
您可以通过以下代码获取table个名字:
var tableNames = (await db
.query('sqlite_master', where: 'type = ?', whereArgs: ['table']))
.map((row) => row['name'] as String)
.toList(growable: false);