如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

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

sqlite数据表自带rowid

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

sqlite和mysql的自增id对比 - 000

sqlite和mysql的自增id对比(图12-1)

sqlite和mysql的自增id对比 - 001

sqlite和mysql的自增id对比(图12-2)

sqlite建立自增id

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

sqlite和mysql的自增id对比 - sqlite_id

sqlite和mysql的自增id对比(图12-3)

sqlite和mysql的自增id对比 - sqlite_id2

sqlite和mysql的自增id对比(图12-4)

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

sqlite和mysql的自增id对比 - sqlite_id3

sqlite和mysql的自增id对比(图12-5)

sqlite和mysql的自增id对比 - sqlite_id5

sqlite和mysql的自增id对比(图12-6)

sqlite的自增id语句

id INTEGER PRIMARY KEY AUTOINCREMENT

sqlite和mysql的自增id对比 - sqlite_id4

sqlite和mysql的自增id对比(图12-7)

mysql建立自增id

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

sqlite和mysql的自增id对比 - mysql_id

sqlite和mysql的自增id对比(图12-8)

sqlite和mysql的自增id对比 - mysql_id2

sqlite和mysql的自增id对比(图12-9)

sqlite和mysql的自增id对比 - mysql_id3

sqlite和mysql的自增id对比(图12-10)

`id` int(11) NOT NULL AUTO_INCREMENT

sqlite和mysql的自增id对比 - mysql_id4

sqlite和mysql的自增id对比(图12-11)

demo截图

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

db.serialize(function() {
    db.run("CREATE TABLE if not exists lorem (info TEXT)");
    var stmt = db.prepare("INSERT INTO lorem(info) VALUES (?)");
    for (var i = 0; i < 10; i++) {
        stmt.run("Ipsum " + i);
    }
    stmt.finalize();
    db.each("SELECT rowid AS id, info FROM lorem", function(err, row) {
        console.log(row.id + ": " + row.info);
    });
});

sqlite和mysql的自增id对比 - row_id

sqlite和mysql的自增id对比(图12-12)

结论

sqlite中的自增id和mysql中的自增id,有着较大的区别。不仅表现为类型,长度,甚至自增单词的拼写方法上。sqlite中的rowid就可以代替我们传统意义上的id。这点是最重要的区别所在。

sqlite数据库当然会和mysql数据库有所区别,否则就不会自成一派了,您说,对吧?更多sqlite的经验文章,请点击苏南大叔的相关文章:https://newsn.net/tag/sqlite/

  【node】秘籍文章入口,仅传授于有缘之人  node

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

打赏领取小礼物

打赏任意金额,发送截图到邮箱 shang@newsn.net ,可以领取精选回馈如下(任选其一):
  • 《前端视频教程大礼包》一套
  • 《wordpress精选皮肤》一套
  • 《dedecms织梦精选模板》一套
感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!

岁月静好

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/sqlite-mysql-autoincrement.html
上一篇好文:好用的 sqlite 跨平台可视化管理工具,都有哪些?
下一篇好文:mysql索引在phpmyadmin中如何管理

如果您转载了本文章,出于某种原因,并没有注明作者或者出处。
在这里,苏南大叔也表示理解和支持。因为苏南大叔深深地明白:
您会在合适的时机,合适的地方,给本博客一个外链。对吧?
您若开心,便是安好!岁月静好,但愿世界和平,没有纷争~