【问题标题】:SQLite multiple Autoincrement Columns?SQLite多个自动增量列?
【发布时间】:2011-11-13 05:29:59
【问题描述】:

我尝试使用以下 SQL 来创建表和一些列。作为其中的一部分,我希望其中两列自动增加一个整数。当我尝试使用下面的代码时,它给了我一个错误。

    CREATE TABLE IF NOT EXISTS 'tasks' (
'rowID' INTEGER, 
'gID' INTEGER, 
'task' TEXT, 
'status' TEXT, 
'position' INTEGER, 
'updated' INTEGER, 
'inlist' TEXT, 
'deleted' TEXT, 
PRIMARY KEY AUTOINCREMENT ('rowID','position')
)

当我从 SQL 中删除关键字“AUTOINCREMENT”时,它可以正常工作。

是否可以有两个自增列?如果没有,有没有办法让一列在插入时自动从另一列(自动递增)中获取值?

谢谢

【问题讨论】:

    标签: sql sqlite insert auto-increment


    【解决方案1】:

    您不能有两个自动增量字段。您应该使用单个自动增量字段。鉴于这两个字段对于每一行都将始终具有相同的值,因此无论如何都没有理由必须使用这些字段。

    【讨论】:

    • 我最初需要两个具有相同值的字段,但“位置”字段将在以后更新,所以我确实需要两个单独的值。有没有办法让“位置”字段自动从“rowID”中获取值作为插入?
    • @levi:据我所知,您无法更新自动增量字段的值。由可变值定义的主键也没有任何意义。
    【解决方案2】:

    I need two fields with the same values initially, but the "position" field will be updated at a later time, so I do need two separate values. Is there a way I can have the "position" field automatically take the value from "rowID" as its being inserted

    http://www.sqlite.org/lang_createtrigger.html

    尝试使用插入后触发器,将 colB = 设置为 colA 的值。 ColA 是自动递增的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 2017-03-07
      • 2019-09-09
      • 1970-01-01
      • 2011-03-18
      • 2017-09-30
      相关资源
      最近更新 更多