导读:本期聚焦于小伙伴创作的《SQLite插入自增ID怎么设置,SQLite自增主键插入方法有哪些》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《SQLite插入自增ID怎么设置,SQLite自增主键插入方法有哪些》有用,将其分享出去将是对创作者最好的鼓励。

SQLite作为轻量级嵌入式数据库,在很多移动应用和小型项目中被广泛使用,自增ID是数据库表设计中常用的主键方案,能自动生成唯一标识记录的数值。SQLite的自增主键实现和其他数据库有明显区别,需要遵循特定的设置规则,插入数据时也有对应的处理方式。

SQLite插入自增ID怎么设置,SQLite自增主键插入方法有哪些

SQLite自增ID的设置方式

SQLite中设置自增主键不需要像MySQL那样使用AUTO_INCREMENT关键字,而是通过INTEGER PRIMARY KEY的组合来实现,如果需要严格保证自增ID的自增特性,还可以添加AUTOINCREMENT关键字。

基础自增主键设置

最基础的自增主键设置方式是在建表时,将主键字段定义为INTEGER PRIMARY KEY,SQLite会自动将该字段作为自增字段处理,默认从1开始自增。

-- 创建带自增主键的用户表
CREATE TABLE user (
    id INTEGER PRIMARY KEY,
    username TEXT NOT NULL,
    age INTEGER
);

带AUTOINCREMENT的自增主键设置

如果需要严格保证自增ID不会重复使用之前删除过的ID值,可以在主键定义后添加AUTOINCREMENT关键字,这种设置下,自增ID会一直递增,即使删除了最大的ID记录,新插入的记录也不会使用被删除的ID值。

-- 创建带严格自增主键的用户表
CREATE TABLE user_strict (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT NOT NULL,
    age INTEGER
);

SQLite自增主键的插入方法

设置好自增主键后,插入数据时不需要手动指定自增字段的值,SQLite会自动为其生成对应的自增数值,以下是几种常见的插入场景。

插入时不指定自增字段

这是最常用的插入方式,插入语句中只写非自增字段,自增ID会由数据库自动生成。

-- 向user表插入数据,不指定id字段
INSERT INTO user (username, age) VALUES ('张三', 25);
INSERT INTO user (username, age) VALUES ('李四', 28);

执行上述插入语句后,查询user表可以看到id字段会自动从1开始递增赋值。

插入时指定自增字段为NULL

如果插入语句中包含了自增字段,可以将其值设为NULL,SQLite同样会自动生成自增ID。

-- 插入时指定id为NULL,数据库自动生成自增值
INSERT INTO user (id, username, age) VALUES (NULL, '王五', 30);

插入时指定具体自增字段值

如果手动指定了自增字段的具体数值,且该数值没有被占用,SQLite会直接使用该数值作为记录的ID,不会触发自增逻辑。

-- 手动指定id为100,只要100未被占用就会插入成功
INSERT INTO user (id, username, age) VALUES (100, '赵六', 35);

自增ID相关注意事项

  • 使用INTEGER PRIMARY KEY但不添加AUTOINCREMENT时,如果删除了最大的ID记录,新插入的记录的ID会重用被删除的最大ID值,不会继续递增。
  • AUTOINCREMENT关键字会增加额外的存储开销,因为SQLite需要维护一个自增计数器表sqlite_sequence,如果不需要严格保证ID不重用,不建议添加该关键字。
  • 如果要获取刚插入的自增ID值,可以使用last_insert_rowid()函数,该函数会返回当前连接最后插入的记录的自增ID。
-- 插入数据后获取自增ID
INSERT INTO user (username, age) VALUES ('孙七', 22);
SELECT last_insert_rowid() AS last_id;

两种自增设置的区别对比

为了更清晰区分两种自增设置方式的差异,以下是两者的对比表格:

设置方式ID是否重用被删除的最大值是否需要维护额外计数器适用场景
INTEGER PRIMARY KEY对ID是否连续无严格要求,追求轻量性能
INTEGER PRIMARY KEY AUTOINCREMENT严格要求ID唯一递增,不允许重用历史ID

SQLite自增ID自增主键插入方法修改时间:2026-06-24 01:00:21

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。