【问题标题】:SQLite - don't work autoincrementSQLite - 不工作自动增量
【发布时间】:2015-02-09 13:44:11
【问题描述】:

我从 SQLite Expert Personal 创建数据库文件。 我在我的 Android 应用程序中使用此数据库,但 autoincrement 不起作用。

此数据库中一张表的 DDL -

    CREATE TABLE [dn_events] (
  [id] [INTEGER PRIMARY KEY AUTOINCREMENT], 
  [action_id] INTEGER, 
  [action_type_id] INTEGER, 
  [action_title] TEXT, 
  [action_run] INTEGER, 
  [action_date] INTEGER, 
  [action_rating] DOUBLE, 
  [action_public] INTEGER, 
  [action_node] TEXT, 
  [action_price_total] DOUBLE, 
  [car_id] INTEGER, 
  [action_remind_run] INTEGER, 
  [action_remind_date] INTEGER, 
  [updated_at] INTEGER, 
  [fuelling_type_id] INTEGER, 
  [fuelling_azs_id] INTEGER, 
  [fuelling_liters_amount] DOUBLE, 
  [fuelling_liters_price] DOUBLE, 
  [fuelling_is_full_tank] INTEGER, 
  [fuelling_is_forgot_prev] INTEGER, 
  [fuelling_azs_title] CHAR, 
  [event_type_id] INTEGER, 
  [event_issuer] TEXT, 
  [event_type_title] TEXT, 
  [remind_on] INTEGER, 
  [method] INTEGER, 
  [longitude] DOUBLE, 
  [latitude] DOUBLE, 
  [geo_id] INTEGER, 
  [repair_due_accident] INTEGER, 
  [action_price_total_rub] DOUBLE, 
  [repair_sto_name] TEXT, 
  [repair_job_price] DOUBLE);

当我在表中插入一个事件时,如果我没有手动设置 id,我会在数据库中得到 null

【问题讨论】:

  • 你能把你用于在程序中创建表的查询贴出来吗?
  • 不行,我做不到,因为数据库文件有静态数据
  • 括号阻止autoincrement工作。

标签: android sqlite


【解决方案1】:

我现在用同一个工具也有类似的问题。

有一个GUI可以选择主键,但自动增量框不可选。

这是因为我使用的是 INT

使用 INTEGER 它允许自动增量

【讨论】:

    【解决方案2】:

    删除数据类型周围的括号

    [id] INTEGER PRIMARY KEY AUTOINCREMENT, 
    

    SQLfiddle demo

    【讨论】:

    猜你喜欢
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    相关资源
    最近更新 更多