如何在sqlite数据库中获取表名

时间:2015-02-04 06:58:42

标签: angularjs sqlite cordova

我正在使用cordova + angular js开发移动应用程序。为了创建这个POC,我正在使用这个SQL tutorial。现在我想从sqllite db中获取表名。为此我写下面的代码。

        vm.tableName = function(){
        var query = "SELECT * FROM sqlite_master WHERE type=?";
        $cordovaSQLite.execute(db, query, ['table']).then(function(res) {
            alert("res "+JSON.stringify(res));
        }, function (err) {
            alert("err "+JSON.stringify(err));
        });
    }

我可以在db中成功读取和写入数据,但我无法获取表名。我想,我想念一些事情,但我得到了相关答案,但这对我不起作用link。我不明白如何附加数据库。当我运行上面的代码时,我从db得到了一些响应。

enter image description here

2 个答案:

答案 0 :(得分:2)

我使用此查询从数据库中获取所有表。 SELECT tbl_name FROM sqlite_master WHERE type = 'table';。它适用于android和ios,但在android中它提供了一个额外的表" android_metadata"。为此,我使用下面的代码

for (var i = 0; i < res.rows.length; i++) {
    if (res.rows.item(i).tbl_name !== "android_metadata") 
       ARRAYNAME.push(res.rows.item(i).tbl_name);}

答案 1 :(得分:0)

尝试此查询

SELECT * FROM sqlite_master WHERE type='table'

以上查询应返回以下列