如何在SQLite中创建自增字段?
简单的回答:一个声明为INTEGERPRIMARYKEY的字段将自动增加。
这里是详细的答案:从SQLite的2.3.4版本开始,如果你将一个表中的一个字段声明为INTEGERPRIMARYKEY,那么无论你何时向该表的该字段插入一个NULL值,这个NULL值将自动被更换为比表中该字段所有行的最大值大1的整数;如果表为空,那么将被更换为1。比如,假设你有这样的一张数据表:
CREATETABLEt1(
aINTEGERPRIMARYKEY,
bINTEGER
);
在这张数据表里,声明
INSERTINTOt1VALUES(NULL,123);
在逻辑意义上等价于:
INSERTINTOt1VALUES((SELECTmax(a)FROMt1)+1,123);
一个新的API函数sqlite3_last_insert_rowid()返回最近的插入操作的整形键
注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的,但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGERPRIMARYKEY的声明之前加关键词AUTOINCREMENT.这样被选的键将总是比表中已存在的最大键大1。若可能的最大键已存在于表中,INSERT操作将失败并返回一个SQLITE_FULL错误码.
aINTEGERPRIMARYKEY如果给a字段插入一个具体的值,则以具体的值为主,如果没有插入,或者为NULL,则为自增型增长
相关推荐
specialbrian 2020-07-31
loveandroid0 2020-06-18
DAV数据库 2020-06-17
URML 2020-06-13
Dlanguage 2020-06-12
Plant 2020-06-07
疯狂老司机 2020-06-07
chibangyuxun 2020-06-07
sdwylry 2020-06-04
airfling 2020-05-31
Plant 2020-05-31
zbcaicai 2020-05-26
chaochao 2020-05-19
Plant 2020-05-17
小火车 2020-05-14
beibeijia 2020-04-25
Rain 2020-04-16