从 Node.js 中的 SQLite 获取表列表

Posted

技术标签:

【中文标题】从 Node.js 中的 SQLite 获取表列表【英文标题】:Get list of tables from SQLite in Node.js 【发布时间】:2016-04-01 13:04:51 【问题描述】:

下面的代码只返回第一个表的名称,如何获取现有sqlite中所有可用表名的列表?

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('path/to/mydb.sqlite');
db.serialize(function () 
    db.get("select name from sqlite_master where type='table'", function (err, table) 
        console.log(table);
    );
);

输出

name: "meta"

在 sqlite3 命令行中打开时

sqlite> .tables
downloads             meta                  urls
downloads_url_chains  segment_usage         visit_source
keyword_search_terms  segments              visits

【问题讨论】:

【参考方案1】:

来自get()'s doc:

使用指定参数运行 SQL 查询,然后使用第一个结果行调用回调。

你必须使用db.all():

db.serialize(function () 
    db.all("select name from sqlite_master where type='table'", function (err, tables) 
        console.log(tables);
    );
);

或者db.each(),如果你想为每一行调用回调:

db.serialize(function () 
    db.each("select name from sqlite_master where type='table'", function (err, table) 
        console.log(table);
    );
);

【讨论】:

以上是关于从 Node.js 中的 SQLite 获取表列表的主要内容,如果未能解决你的问题,请参考以下文章

在 node.js 应用程序中使用参数中的变量从 sqlite 数据库中查询数据

Android Sqlite:如何从 Listview 中获取 SQLite rowId?

如何从 sqlite DB 中列出表名——Android [重复]

从 node.js 中的变量解析 CSV 表

PostgreSQL Node.js 服务器中的 SQLite3 each() 函数的等价物?

如何从 Javascript 中的 SQLite 数据库中获取表数据?