`

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
分享到:
评论

相关推荐

    SQL 在自增列插入指定数据的操作方法

    SQL Server 中数据表往往会设置自增列,常见的比如说 首列的ID列。 往数据表插入新数据的时候,自增列是跳过的,无需插入即会按照设置的自增规则进行列增长。那么,如果我们想往自增列插入我们指定的数据时该怎么做...

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

    在SQLite中,删除表的所有记录并不会自动重置自增列的值。为了将自增列归零,需要操作一个名为`sqlite_sequence`的特殊表。此表存储了所有具有自增列的表的名称和当前序列号(seq)。 1. 要重置特定表的自增列,...

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

    在SQLite数据库中,自动编号列是一种非常实用的功能,它允许你在插入新记录时自动为某列生成唯一的递增整数。这种类型的数据列通常用于主键,确保每条记录都有一个独特的标识。SQLite通过维护一个名为`sqlite_...

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

    Unidac(Universal Data Access Components)是Devart公司提供的一款全面的数据库连接组件库,它支持多种数据库引擎,包括SQLite。本篇文章将详细探讨如何在Delphi中使用Unidac连接SQLite数据库并实现数据的增、删、...

    Sqlite3数据库支持库

    4. 索引:SQLite3支持B树索引,可以创建单列、多列以及唯一性索引,以提高查询性能。 5. 内存数据库:除了磁盘数据库,SQLite3还支持内存数据库,这对于临时数据处理或测试场景非常有用。 6. 复制和同步:SQLite3...

    SQLite Truncate Table

    在 SQLite 中,自增列是一种特殊类型的整数列,它的值会在每次插入新行时自动递增。如果需要清空表并重置自增列的值,需要额外处理。 SQLite 使用一个名为 `sqlite_sequence` 的内部表来管理具有自增属性的列。这个...

    sqlite 支持的 sql 语法详解

    2. 不支持自增列(AUTO_INCREMENT)的声明,但可以使用 INTEGER PRIMARY KEY 代替。 3. 不支持 CHECK 约束。 4. 不支持某些特定的聚合函数,如 GROUP_CONCAT 在 MySQL 中常见,但在 SQLite 中没有。 5. 不支持窗口...

    sqlite3的ORM框架

    类的成员变量对应于表的列,而类的方法则提供了对数据库的操作,如插入、查询、更新和删除等。这些操作通常由ORM框架自动处理,只需要开发者提供必要的参数。 在“sqlite3的关系映射类”中,我们可以预见到以下内容...

    SQLite3中的数据类型

    在SQLite3中,使用AUTOINCREMENT关键字可以创建一个自增的主键,但这不同于其他数据库系统的自增字段。只有INTEGER PRIMARY KEY列才能使用AUTOINCREMENT,而且每次插入新记录时,会找到当前最大值加1作为新值。如果...

    Sqlite3支持的数据类型

    当定义一个列为主键并添加AUTOINCREMENT关键字时,SQLite会确保该列的值在插入新行时自动递增,并且每个值都是唯一的。需要注意的是,AUTOINCREMENT并不总是生成连续的序列,只有在删除了具有最大自增值的行后,才会...

    sql-sqlite-commands-cheat-sheet

    文件中还提及了SQLite关键字,如`PRIMARY KEY`,用于指定表中的主键列。`AUTOINCREMENT`关键字可以用于自增字段,确保每个值都是唯一的。 通过以上内容,我们可以了解到SQLite的一些基础命令和关键字,这对于学习...

    SQLite 的使用

    这里,`id`是主键,`AUTOINCREMENT`表示自增。 3. 插入数据: 使用`INSERT INTO`语句将数据插入表中: ```sql INSERT INTO Students (name, age) VALUES ('张三', 20); ``` 4. 查询数据: `SELECT`语句用于...

    android sqlite 数据库查看器 绿色版

    5. 主键(Primary Key):用于唯一标识一行数据的列,通常设置为自增ID。 使用SQLite数据库查看器,你可以: 1. 查看所有数据库:查看设备上所有已创建的SQLite数据库文件。 2. 打开数据库:选择特定的数据库文件,...

    AndroidInject增加sqlite3数据库映射注解(ORM)

    3. `@PrimaryKey`: 定义主键,可以是自增的或非自增的,如: ```java @Entity(tableName = "users") public class User { @PrimaryKey(autoGenerate = true) private int id; @Column private String name; @...

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

    SQLite中的`AUTOINCREMENT`关键字是用于创建具有自动递增特性的整型字段的关键字,它主要用在定义表格结构时,确保某列的值在每次插入新记录时都会自动增加。这一特性通常应用于主键列,以确保每条记录都有唯一的...

    SQLite总结

    - 示例:创建一个名为`mytable`的表,其中包含一个自增的主键`_id`,一个文本类型的列`title`,以及一个浮点数类型的列`value`。 ```java db.execSQL("CREATE TABLE mytable (_id INTEGER PRIMARY KEY ...

    Android应用开发-SQlite数据库查询.pptx

    SQLite自动为主键列添加索引,这有助于提高查询性能。如果你需要为其他列创建索引,可以在创建表时或之后使用`CREATE INDEX`语句。 在实际应用中,为了响应数据库版本的变化,`onUpgrade()`方法会被调用。例如,从...

Global site tag (gtag.js) - Google Analytics