在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
}
}
}
问题是日志中rowid
为undefined
。
正如您所看到的,他使用rowid
进行了查询以解决他的问题。
但它并不是我想要的(我想选择全部)而且,我不明白为什么它以这种方式工作而不是其他方式。
当然我可以创建自己的自动增量主键字段,但我想避免它,这不是我的问题。
答案 0 :(得分:2)
SELECT *
返回您在表定义中声明的所有列。
如果您希望rowid
列显示*
,则必须将其包含在那里:
CREATE TABLE ServicesRondes (
rowid INTEGER PRIMARY KEY,
userUuid UUID,
secteurId UUID,
time TIMESTAMP,
[...]
);