首页 > 解决方案 > sqlite3中的主键是如何自动分配的?

问题描述

我正在使用 sqlite3 db 编写节点应用程序。有谁知道,如果我插入多条记录,主 ID 是否按照给出语句的顺序自动分配?

也就是说,对于有列的表

  `id` INTEGER PRIMARY KEY,
  `field1` INTEGER,
  `field2` INTEGER

我提交如下声明:

INSERT INTO table (field1, field2) VALUES (1, 2), (2, 3), (3, 4), (4, 5), (5, 6);

如果在回调中this.lastID是 20。我可以假设行是 (16, 1, 2), ... (20, 5, 6) 吗?

我对此进行了实验,发现ID似乎总是这样分配的,但它可靠吗?

如果我也知道this.lastID在插入之前是 15,所以我知道 ID 是 [15, ..., 20] 怎么办?

对于额外的信用,如果我单独提交插入并异步运行查询,同样的问题:我可以依赖按语句传递顺序分配的 ID 吗?

标签: node.jssqlite

解决方案


推荐阅读