对比理解:sqlite3和mysql的自增id特性
发布于 作者:苏南大叔 来源:程序如此灵动~

在讲述sqlite
的数据插入语句api
之前,苏南大叔有必要和大家讲述sqlite
中的自增id
的有关事项。sqlite
的自增id
和mysql
中的自增id
是完全不一样的体验。请大家看完本篇文章之后,再研究相关node-sqlite3
的数据插入api
。

sqlite
数据表自带rowid
sqlite
的数据表里面,有个隐藏的rowid
字段。注意这个rowid
是隐藏的,任何表都有这个字段,自增类型的。不用主动建立就存在,这个rowid
和mysql
上的id非常类似。也就是说,完全可以使用这个隐藏的rowid带代替传统意义上的id
。不过,两者并不等同,是有区别的。大家可以清空表之后,再增加数据,看看两者对比。


sqlite
建立自增id
sqlite
也可以建立类似mysql的自增id。不过,这个自增的id的类型必须为integer
,不能是int
(int
和integer
类型同时存在于sqlite
中,mysql
中只有int
类型),并且integer
作为主键的时候,不能指定长度。


在sqlitestudio
中,必须先设置为integer
,然后保存之后,才能修改为autoincrement
,似乎有些不是很智能,差评。


sqlite的自增id语句

mysql建立自增id
这个mysql的自增id,大家应该都比较熟悉了。一般都会设置为int(11)
。




demo截图
下面的demo中,对于一个没有自增id的数据表,演示了如何利用sqlite的rowid查出id来。

结论
sqlite中的自增id和mysql中的自增id,有着较大的区别。不仅表现为类型,长度,甚至自增单词的拼写方法上。sqlite中的rowid就可以代替我们传统意义上的id。这点是最重要的区别所在。
sqlite数据库当然会和mysql数据库有所区别,否则就不会自成一派了,您说,对吧?更多sqlite的经验文章,请点击苏南大叔的相关文章:https://newsn.net/tag/sqlite/ 。


