首页 > 解决方案 > 在 Delphi CE 中针对 Sqlite3 获得负自动增量值

问题描述

我已经看过了,也许我不知道在哪里看,但这是我的情况。我使用试用应用程序将工作中的 .mdb 数据库转换为 SQlite:ESF 数据库迁移工具包。我迁移了最后一个自动增量 ID 为 263 的所有数据。当我尝试使用 Delphi CE 将任何数据插入 .db 时,自动增量字段不起作用,说 ID 字段需要一个值。我查看了表格,它对该字段有一个约束。我使用 SQliteUI 删除了约束,重新定义了 ID,使其成为 PRIMARY KEY NOT NULL AUTOINCREMENT,现在可以添加数据,但它给了我一个负 ID (-3)。如果我将它直接放在 SQLiteUI 中,它会给出一个 NULL 值,直到刷新表并且我得到正确的下一个 ID (264)。我可能做错了什么?我应该没有迁移数据吗?在 SQLiteUI 中重新制作表格?我没有' 不想手动重新输入所有数据。谢谢

CREATE TABLE wines ( 
  wineID INTEGER PRIMARY KEY ASC AUTOINCREMENT NOT NULL, 
  winename VARCHAR (175), 
  winery VARCHAR (200), 
  varietal VARCHAR (200), 
  winetype VARCHAR (150), 
  incellar INTEGER DEFAULT 0, 
  vintage VARCHAR (10), 
  grapes VARCHAR (150), 
  pricepaid NUMERIC (10, 2) DEFAULT 0,
  winelabel BLOB, 
  wherestored VARCHAR (100), 
  rating VARCHAR (10), 
  datepurchased DATETIME, 
  foodpairing VARCHAR (255), 
  region VARCHAR (150), 
  regionalstyle VARCHAR (150), 
  country VARCHAR (150), 
  mynotes VARCHAR (255) 
)

标签: databasesqlitedelphi

解决方案


推荐阅读