所以,我在Ionic上有这个应用程序,它使用SQLite ngCordova plugin进行内部存储。在它上面,我使用以下命令创建一个表:
db.executeSql(
"CREATE TABLE IF NOT EXISTS Scans_table (" +
//"id TEXT PRIMARY KEY NOT NULL," +
"name TEXT NOT NULL," +
"comment TEXT, " +
"text TEXT NOT NULL, " +
"format TEXT NOT NULL, " +
"dateTaken TEXT NOT NULL, " +
"imgSource TEXT NOT NULL)", ... );
根据this,如果我没有主列和整数列,则应将ROWID设置为唯一标识符。
问题是,当我用简单的SELECT * ...
查询表时,我看到了我设置的所有行,而不是ROWID。
有没有不同的方法来设置/检查ROWID?
谢谢!
答案 0 :(得分:3)
如documentation所示,您的表 有一个内部rowid
列。但是,如果表的列列表不包含此列的别名(即INTEGER PRIMARY KEY列),rowid
列中不包含SELECT *
列。
您只需在SELECT子句中添加该列:
SELECT rowid, * FROM Scans_table ...
但是,如果您实际使用rowid
,最好有一个显式的INTEGER PRIMARY KEY列。这不仅可以更好地记录表格结构,还可以防止rowid
值为changed by the VACUUM statement。