Android SQLite支持SQLite"WITHOUT ROWID"?

ear*_*zon 2 sqlite android

我有一个SQLite应用程序在Linux,Windows和Android上使用自定义编译的SQLite(使用NDK)时工作正常.使用和不使用ROWID创建表可以正常工作.

相反,当我尝试使用Android中的标准SQLite创建相同的模式时,在下一个SQL语句中"WITHOUT"附近会抛出语法错误:

CREATE TABLE REL_TABLE1_TABLE2
  ( FK_TABLE1_ID integer, FK_TABLE2_ID integer, 
    FOREIGN KEY (FK_TABLE1_ID)   REFERENCES  TABLE1(ROWID),
    FOREIGN KEY (FK_TABLE2_ID) REFERENCES TABLE2(ROWID),
    PRIMARY KEY (FK_TABLE1_ID, FK_TABLE2_ID) 
  ) 
  WITHOUT ROWID;
Run Code Online (Sandbox Code Playgroud)

如果我删除"WITHOUT ROWID"它可以正常工作.这是否意味着Android不支持WITHOUT ROWID?

我没有找到相关文档,但其他人看起来有相关问题:

使用WITHOUT ROWID时,无法使用linqpad打开sqlite数据库

编辑:TABLE1/2仍保留ROWID.WITHOUT ROWID仅适用于N/M REL_TABLE1_TABLE2表

CL.*_*CL. 8

在SQLite 3.8.2中引入了WITHOUT ROWID .

这意味着Android可能支持也可能不支持,具体取决于您使用的Android版本.