sqlite创建自增字段浅谈(AUTOINCREMENT) 您所在的位置:网站首页 数据库自动增长语句 sqlite创建自增字段浅谈(AUTOINCREMENT)

sqlite创建自增字段浅谈(AUTOINCREMENT)

2024-07-09 12:15| 来源: 网络整理| 查看: 265

日期:2019年7月29日 作者:Commas 注释:这些天一直在写sqlite的脚本,今天就归纳一下sqlite自增字段(AUTOINCREMENT)的知识,希望可以帮助到大家。此笔记可能会有一些错误和疏漏,望指正,谢谢~~~

目录

文章目录 一、sqlite自增字段小结二、sqlite自增字段示例

一、sqlite自增字段小结

关键字 AUTOINCREMENT 的使用,必须满足以下两点: 1、只能用于整型(INTEGER)字段,INT类型是不可以; 2、只能用于PRIMARY KEY字段;

序号字段定义是否可以自增备注1INT PRIMARY KEY否字段值默认为NULL2INT PRIMARY KEY AUTOINCREMENTNULLAUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY,AUTOINCREMENT(创建失败,仅仅允许设置在INTEGER PRIMARY KEY的列上)3INTEGER PRIMARY KEY是自增(引擎没有创建sqlite_sequence表)。值 = 此表最大值 + 1,故可与之前删除的值重叠;当超过最大值时,会随机找一个没被使用的值4INTEGER PRIMARY KEY AUTOINCREMENT是自增(引擎自动在sqlite_sequence表中添加一条记录),值 = sqlite_sequence表中对应值 + 1。故一般不会与之前删除的值重叠;当超过最大值时,会丢出一个SQLITE_FULL的错误 二、sqlite自增字段示例 --(1)INT PRIMARY KEY------>字段不会自增 --(1-1)创建表 create table [test_int]( [id] INT PRIMARY KEY, [s1] TEXT(50) COLLATE NOCASE ); --(1-2)插入值 insert into test_int(s1) values('1'); insert into test_int(s1) values('2'); insert into test_int(s1) values('3'); --(1-3)查询表 select * from test_int; ids1NULL1NULL2NULL3 --(2)INT PRIMARY KEY AUTOINCREMENT------>字段不会自增 --(2-1)创建表------>字段会自增 create table [test_int_autoincrement]( [id] INT PRIMARY KEY AUTOINCREMENT, [s1] TEXT(50) COLLATE NOCASE ); --(2-2)插入值 --(2-3)查询表 --说明: --无法创建表test_int_autoincrement,原因是 --AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY AUTOINCREMENT --AUTOINCREMENT仅仅允许设置在INTEGER PRIMARY KEY的列上 --(3)INTEGER PRIMARY KEY------>字段会自增 --(3-1)创建表 create table [test_integer]( [id] INTEGER PRIMARY KEY, [s1] TEXT(50) COLLATE NOCASE ); --(3-2)插入值 insert into test_integer(s1) values('1'); insert into test_integer(s1) values('2'); insert into test_integer(s1) values('3'); --(3-3)查询表 select * from test_integer; ids1112233 --(4)INTEGER PRIMARY KEY AUTOINCREMENT------>字段会自增 --(4-1)创建表 create table [test_integer_autoincrement]( [id] INTEGER PRIMARY KEY AUTOINCREMENT, [s1] TEXT(50) COLLATE NOCASE ); --(4-2)插入值 insert into test_integer_autoincrement(s1) values('1'); insert into test_integer_autoincrement(s1) values('2'); insert into test_integer_autoincrement(s1) values('3'); --(4-3)查询表 select * from test_integer_autoincrement; ids1112233 --(5) sqlite_sequence 表, --这个表包含两个列:name和seq。name记录自增列所在的表, --seq记录当前序号(下一条记录的编号就是当前序号加1)。 select * from sqlite_sequence ;

点(5)参考作者“与时俱进”的《SQLite3中自增主键归零方法》 当SQLite数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的表。 这个表包含两个列:name和seq。name记录自增列所在的表,seq记录当前序号(下一条记录的编号就是当前序号加1)。 如果想把某个自增列的序号归零,只需要修改 sqlite_sequence表就可以了。 UPDATE sqlite_sequence SET seq = 0 WHERE name=‘TableName’; 也可以直接把该记录删掉: DELETE FROM sqlite_sequence WHERE name=‘TableName’; 要想将所有表的自增列都归零,直接清空sqlite_sequence表就可以了: DELETE FROM sqlite_sequence;

版权声明:本文为博主原创文章,如需转载,请给出: 原文链接:https://blog.csdn.net/qq_35844043/article/details/97634257



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有