`

SQLITE 自增列

阅读更多
在SQLite中,每个Table隐含包含64bit的自增字段,该字段有SQLite维护,可以通过列名ROWID, _ROWID_, 或者OID可以访问,当该Table中存在整形主键时,该自增字段由该主键替换,该主键也是该自增字段的别名。
例如:创建表testtb,其中主键xxxid为整形。
CREATE TABLE testtb(   
    xxxid INTEGER PRIMARY KEY,
    testcol TEXT,
    ……);
使用SELECT ROWID FROM testtb返回的数据与SELECT xxxid FROM testtb相同,即ROWID(_ROWID_, 或者OID)与整形主键xxxid所指为同一列。

如果表中未插入条目,则新插入的条目中ROWID从1开始,自增字段达到ROWID最大值时,便不能插入新的条目,且任何尝试插入的操作都会以SQLITE_FULL错误失败。

注意:
SQLite中,非主键整形字段不能通过设置AUTOINCREMENT关键字变成自增字段。
参考链接:http://www.sqlite.org/autoinc.html
分享到:
评论

相关推荐

    SQLite中重置自动编号列的方法

    主要介绍了SQLite中重置自动编号列的方法,本文讲解了3种情况和其对应解决方法,需要的朋友可以参考下

    SQLite3中自增主键相关知识总结

    一、SQLite清空表并将自增列归零 SQL标准中有TRUNCATE TABLE语句,用来清空表的所有内容。但SQLite不支持这个语句。在SQLite中直接使用 DELETE FROM TableName 就可以了。对于大多数DBMS来说,用DELETE不如用...

    delphi使用unidac连接sqlite实现增删改的例子

    用来学习可以

    【总结】数据库自增字段的 3 种实现方式

    我们今天的主题就是自增字段的实现,下表列出了主流数据库中创建自增字段的几种方法: 自增字段实现方式 MySQL Oracle SQL Server PostgreSQL SQLite 标识列(IDENTITY) — :check_mark: :check_mark: :...

    SQLite Truncate Table

    SQLite Truncate Table 在 SQLite 中,并没有 TRUNCATE TABLE 命令,但可以使用 SQLite 的 DELETE 命令从已有的表中删除全部的数据。...当 SQLite 数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的表。

    Sqlserver、Oracle、MySql、PostgreSql、SqlLite数据库差异

    Sqlserver、Oracle、MySql、PostgreSql、SqlLite常用数据库的对比 1、分页 2、时间函数 3、自增列 4、表名规范 5、字符串连接 6、变量定义 7、其它

    SQLite之Autoincrement关键字(自动递增)

    SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增。我们可以在创建表时在特定的列名称上使用 AUTOINCREMENT 关键字实现该字段值的自动增加。 注意点:整型字段可以使用关键字AUTOINCREMENT。 语法 ...

    基于FMDB数据库操作类PYFMDB.zip

    0,//主键,int类型,自增 PYStructureTypePrimaryInt = 1,//主键,int类型,自增 PYStructureTypePrimaryText = 2,//主键,text类型 PYStructureTypeNormalInt = 3,//普通列,int类型 PYStructureTypeNormalText...

    Java学习笔记-个人整理的

    {1.8.1}自增运算}{28}{subsection.1.8.1} {1.8.1.1}Postincrement}{28}{subsubsection.1.8.1.1} {1.8.1.2}Preincrement}{28}{subsubsection.1.8.1.2} {1.8.1.3}复合赋值运算}{28}{subsubsection.1.8.1.3} {...

Global site tag (gtag.js) - Google Analytics