1

你能告诉我如何检查数据库中存在的表名还是现在。我需要计算表中元素的数量。但是如果数据库中不存在表,那么它会出错。?

如果数据库中没有表(名称=caseName_h)。那么它会给出错误。所以我需要检查。如果这个表存在那么我需要计算元素的数量。?我试试这样

 db.transaction(function (tx) {
    tx.executeSql('PRAGMA table_info(a)', [],
              function(tx, results) {
                alert("hh");
    if (results.rows.length == 0) {
        alert("No")
    } else {
        tx.executeSql('SELECT COUNT(*) FROM a' , [],
                      function(tx, results) {
                        alert("Yes");

                    });
    }
});
});
4

3 回答 3

2

检查这个:

this.db.transaction(
    function (tx) {
        tx.executeSql("SELECT name FROM sqlite_master WHERE type='table'", [], function (tx, result) {
            if (result.rows.length == 1) {
                //here are no your tables currently
            } else {

            }
        });
    }
);
于 2014-07-03T13:45:33.907 回答
1

您还可以查询数据库以检查表的存在

tx.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name='tableName'", [], function (tx, result) {
    if (result.rows.length == 0) {
        //Your logic if table doesnt exist
    }
});

这里如果 result.rows.length == 0 表示该表不存在,否则存在。

于 2013-09-11T07:38:23.723 回答
0

执行PRAGMA table_info,并检查是否有任何返回:

tx.executeSql('PRAGMA table_info(' + caseName_h + ')', [],
              function(tx, results) {
    if (results.rows.length == 0) {
        // no table
    } else {
        tx.executeSql('SELECT COUNT(*) FROM ' + caseName_h, [],
                      function(tx, results) {
            // ...
        });
    }
});
于 2013-07-16T06:38:44.353 回答