Cordova/SQLite:rowid 未定义

Cordova / SQLite: rowid undefined

在 Android 设备上使用 SQLite 和 Cordova。

我有一个包含 table 和一些字段的数据库。

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

这是 Chrome 调试器中 table 的屏幕截图:

我正在尝试访问那个 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
        }
    }               
}

所以问题是 rowid 在日志中是 undefined

我发现只有一个 link 有一个人回答了他自己的问题:https://forum.qt.io/topic/53217/solved-how-to-access-sqlite-rowid

如您所见,他用 rowid 进行了查询以解决他的问题。

但这并不是我真正想要的(我想要 select 全部)而且,我不明白为什么它以这种方式而不是另一种方式工作。

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

SELECT * returns 您在 table 定义中声明的所有列。

如果您希望 rowid 列与 * 一起显示,您必须将其包含在此处:

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