Cordova / SQLite:rowid undefined

时间:2017-03-06 11:20:29

标签: sqlite cordova android-sqlite rowid

在Android设备上使用SQLite和Cordova。

我有一个包含一些包含某些字段的表的数据库。

所有字段都不是主键,因此记录具有SQLite生成的默认rowid

以下是Chrome调试程序中表格的屏幕截图:enter link description here

我正在尝试访问rowid(我为您节省了所有数据库代码并专注于查询):

tx.executeSql('SELECT * FROM ServicesRondes', [], function(tx, res) {
    console.log(res.rows.length); // shows 5
    if (res.rows.length > 0) {
        for(var i = 0; i < res.rows.length; i++) {
            console.log(res.rows.item(i).time); // shows the time record
            console.log(res.rows.item(i).rowid); // shows undefined
        }
    }               
}

问题是日志中rowidundefined

我发现只有一个链接与一个回答他自己问题的人:table in Chrome debugger

正如您所看到的,他使用rowid进行了查询以解决他的问题。

但它并不是我想要的(我想选择全部)而且,我不明白为什么它以这种方式工作而不是其他方式。

当然我可以创建自己的自动增量主键字段,但我想避免它,这不是我的问题。

1 个答案:

答案 0 :(得分:2)

SELECT *返回您在表定义中声明的所有列。

如果您希望rowid列显示*,则必须将其包含在那里:

CREATE TABLE ServicesRondes (
    rowid     INTEGER PRIMARY KEY,
    userUuid  UUID,
    secteurId UUID,
    time      TIMESTAMP,
    [...]
);