【问题标题】:Sqlite does not detect unique key on a table despite primary key being present尽管存在主键,但 Sqlite 未检测到表上的唯一键
【发布时间】:2019-11-29 16:41:42
【问题描述】:

我正在尝试从sqlite 数据库中删除一条记录。我使用dbeaver 程序进行所有操作。因此,当执行该操作时,会显示以下错误:

错误表明唯一键不存在。表创建查询是这样的:

CREATE TABLE betGroups ( 
id INTEGER PRIMARY KEY AUTOINCREMENT, 
betgroupstatus INTEGER NOT NULL,
dateInserted DATETIME DEFAULT CURRENT_TIMESTAMP)

但是,如果我们检查唯一键选项卡 - 我们将看到存在唯一键:

所以基本上,primary key 被认为是unique key。尽管如此,仍然显示错误。

是否有很好的解释为什么我会收到此错误?我尝试为 id 字段添加 UNIQUE 关键字。表已创建,但没有任何区别。我还可以在程序选项或 SQL 脚本中更改什么以使错误消失。

我不确定这是我的脚本问题、驱动程序问题还是程序问题。

使用:

  • org.sqlite.JDBC 3.28.0
  • dbeaver 6.1.1

【问题讨论】:

  • 显示您是如何尝试删除行的?
  • 选择一行并按下键盘上的 DELETE 按钮。然后,在页面底部,您将看到一个save 按钮(以及cancel)。
  • 所以你不是手动输入删除语句?那么,这是该工具的问题,而不是 sqlite。
  • @Shawn 还是我的创建查询被破坏了?但评论仍然有效..这个问题可能与任何一个有关。所以我也向 dbeaver 提交了一个错误。让我们看看谁反应更快:) github.com/dbeaver/dbeaver/issues/6337

标签: sqlite dbeaver sqlitejdbc


【解决方案1】:

它最终成为DBeaver 中的一个缺陷。引用:

https://github.com/dbeaver/dbeaver/issues/6337

这是 #424 修复的副作用。目前 DBeaver 不使用 具有可为空列的唯一键。我相信我们应该在 至少 SQLite。

【讨论】:

  • @halfer 你认为我需要删除这个问题还是保留它可以吗?
猜你喜欢
  • 1970-01-01
  • 2017-12-18
  • 1970-01-01
  • 2011-07-25
  • 2019-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多