我有一个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表