永发信息网

SQLite如何设置自动增长的主键

答案:1  悬赏:30  手机版
解决时间 2021-11-08 02:49
SQLite如何设置自动增长的主键
最佳答案
id int identity(1,1) 是 SQL Server 的 自动递增列的写法。

对于SQLite
主键数据类型为 int 类型。
插入的时候,不传入数据, 就是默认为自动递增处理。
last_insert_rowid() 函数用于获取最新生成的 ID

sqlite> CREATE TABLE test_create_tab2 (
...> id integer,
...> val VARCHAr(10),
...> PRIMARY KEY (id)
...> );
sqlite> INSERT INTO test_create_tab2(val) VALUES ('NO id');
sqlite> select last_insert_rowid();
last_insert_rowid()
1

sqlite> INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
sqlite> select last_insert_rowid();
last_insert_rowid()
2

sqlite> select * from test_create_tab2;
id|val
1|NO id
2|NO id 2

sqlite> INSERT INTO test_create_tab2(id, val) VALUES (100, 'id is 100');
sqlite> INSERT INTO test_create_tab2(val) VALUES ('NO id again');
sqlite> select * from test_create_tab2;
id|val
1|NO id
2|NO id 2
100|id is 100
101|NO id again

注意:
对于无主键的表
SQLite 中还有一个 伪列 rowid, 可以作为自动递增的查询处理。

sqlite> CREATE TABLE test_create_tab3 (
...> id integer,
...> val VARCHAr(10)
...> );
sqlite>
sqlite> INSERT INTO test_create_tab3(id, val) VALUES (1, 'Test1');
sqlite> INSERT INTO test_create_tab3(id, val) VALUES (2, 'Test2');
sqlite> INSERT INTO test_create_tab3(id, val) VALUES (100, 'Test100');
sqlite> INSERT INTO test_create_tab3(id, val) VALUES (101, 'Test101');
sqlite> select rowid, id, val from test_create_tab3;
rowid|id|val
1|1|Test1
2|2|Test2
3|100|Test100
4|101|Test101
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
进位制中的”逢十进一,借一当十”是什么意思
如何评价兰彦岭学术水平及其所述鬼谷子
有没有vivo手机的高手,所有关于vivo手机使用
C#程序暂停功能
乌伦古湖为什么是淡水湖
云南楚雄距离建水有多远
2010年瑞琪二手车值多钱
求带有“红尘”的诗句…
空气中通高压电是否产生水?
开化龙顶和西湖龙井有什么区别?
为了曾经帮助过你的人,你能付出多少
龙庄村地址在哪,我要去那里办事,
两张750组sli和一张780比性能区别有多少
图中划线的两句话: Pepe和paco是朋友吗?:so
 请问有哪位高手知道交警违章探头和治安
推荐资讯
25号虹桥火车站 G7156号列车经过哪些站
凤庆县大队科目三考场2地址在哪,我要去那里
这主机能玩大型游戏的吧,还有他性能怎么样,
安康市德林汽车服务有限公司地址有知道的么?
从分类的角度说,亲缘关系最为密切的是(  
模具钳工能干到多少岁?
榆林交警支队一大队芹河中队地址有知道的么?
安装08cad时出现 错误说无法复制什么文件
永乐蛋糕房怎么去啊,有知道地址的么
灵的笔顺笔画顺序
恶魔克星护手怎么等级又变了,颜色又变了 NGA
想问一首歌,就记得一句歌词:“窗外风好大
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?