我正在尝试创建一个表并在Android应用程序中使用SQLite插入行。我需要对主键进行硬编码,因为它们将用于对数据库的查询。主键必须与其他数据库匹配。
我用这个创建表:
CREATE TABLE Properties(ID INTEGER PRIMARY KEY, Name TEXT)
然后我有一个基于来自数据库的查询插入行的方法。这类似于查询的外观:
INSERT INTO Properties (ID, Names) VALUES
(5001, "A Property"),
(4001, "B Property"),
(3001, "C Property")
我收到一条带有“PRIMARY KEY必须唯一(代码19)”消息的SQLLiteConstraintException。我的主键都是独一无二的。我怀疑这种情况正在发生,因为主键不按顺序排列。我在数据库中进行的查询是按名称排序,而不是主键。
有趣的是,当我从我的设备中提取SQLite数据库时,它似乎拥有所有数据。
答案 0 :(得分:3)
有趣的是,当我从我的设备中提取SQLite数据库时,它似乎拥有所有数据。
我的猜测是发生了什么:
您的工作是确保您尝试插入的数据不存在,或者您没有违反任何唯一性限制。由于不清楚“基于数据库中的查询插入行的方法”的用途是什么目的,因此很难为您提供更具体的建议。