SQL - 在插入自定义值后检索自动增量值

时间:2016-08-09 13:40:39

标签: database sqlite

说我需要跟踪学生的情况。根据自动增量为它们分配s.no.第一人获得第二人获得2,等等。但是如果一个学生想要一个自定义的s.no(比如说32)我需要给他32个,当下一个人来的时候我需要给他3和下一个人4等等。我会在分配自定义序列号之前检查数据库,以确保它们不存在。我使用的是sqlite3。我有一个包含1列的db表(自动增量pk)

数据库: -

S.no
    1
    2
    3

现在我插入一个自定义值" 32"

custom = 32
    con.execute("INSERT INTO table (id) values (?)", (custom)

数据库:

S.no
    1
    2
    3
    32

现在,当我使用自动增量来增加值时,数据库变为:

S.no
    1
    2
    3
    32
    33
    34

我想要的是:

S.no
    1
    2
    3
    32
    4
    5

1 个答案:

答案 0 :(得分:1)

这不是SQLite's autoincrement algorithm的工作方式。

要获得小于实际使用的最大ID的自动增量ID,您必须自己实现该算法(即,将当前计数器值存储在其他位置)。