gpt4 book ai didi

当主键唯一时,Android SQLite PRIMARY KEY must be unique异常

转载 作者:搜寻专家 更新时间:2023-11-01 08:49:58 33 4
gpt4 key购买 nike

我正在尝试在 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")

我收到 SQLLiteConstraintException 消息“PRIMARY KEY 必须是唯一的(代码 19)”。我的主键都是唯一的。我怀疑发生这种情况是因为主键没有按顺序排列。我从数据库中执行的查询是按名称排序的,而不是主键。

有趣的是,当我从我的设备中提取 SQLite 数据库时,它似乎拥有所有数据。

最佳答案

Interestingly enough, when I extract the SQLite database from my device, it seems to have all of the data.

我的猜测是发生了什么:

  • 您从卸载应用开始
  • 您安装了您的应用
  • 您运行了您的应用程序,调用了在新创建的数据库中插入三行的方法,该方法成功了
  • 您可能对应用程序做了一些更改
  • 您再次运行您的应用程序,调用此方法尝试将三行插入到数据库中,这些行与之前运行的行一起存在,但您未能满足唯一性约束

您的工作是确保您尝试插入的数据不存在,或者您没有违反任何唯一性约束。由于不清楚您的“根据数据库查询插入行的方法”的目的是什么,因此很难为您提供更具体的建议。

关于当主键唯一时,Android SQLite PRIMARY KEY must be unique异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24514102/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com