代码之家  ›  专栏  ›  技术社区  ›  Christian Davén

在SQLite中设置AUTOINCREMENT的起始值

  •  65
  • Christian Davén  · 技术社区  · 17 年前

    如何在SQLite中设置AUTOINCREMENT字段的起始值?

    7 回复  |  直到 17 年前
        1
  •  20
  •   dave mankoff    8 年前

    SQLite web site :

    SQLite使用特殊代码跟踪表中有史以来最大的ROWID SQLITE_SEQUENCE SQLITE_SEQUENCE SQLITE_SEQUENCE 可以使用普通的UPDATE、INSERT和DELETE语句修改表。

    UPDATE SQLITE_SEQUENCE SET seq = <n> WHERE name = '<table>'
    

    哪里 +1是你想要的下一个ROWID 是表名。

        2
  •  80
  •   CL.    11 年前

    value-1

    编辑:下一条评论,讨论编辑 SQLITE_SEQUENCE https://stackoverflow.com/a/692871/10093

        3
  •  12
  •   iTech    11 年前

    我使用下面的查询,它解决了当sqlite_sequence没有表的记录时(即第一条记录尚未添加到表中)的问题,否则它会更新序列。

    BEGIN TRANSACTION;
    
    UPDATE sqlite_sequence SET seq = <n> WHERE name = '<table>';
    
    INSERT INTO sqlite_sequence (name,seq) SELECT '<table>', <n> WHERE NOT EXISTS 
               (SELECT changes() AS change FROM sqlite_sequence WHERE change <> 0);
    COMMIT;
    
        4
  •  6
  •   jle    17 年前

    明确指定要开始的行id .SQLite将插入高于前一个最高值的行ID。

        5
  •  4
  •   Raivo Laanemets    14 年前

    推荐文章