SQLite 中如何使用自增字段?

推荐答案

在 SQLite 中,可以通过 INTEGER PRIMARY KEYINTEGER PRIMARY KEY AUTOINCREMENT 来创建自增字段。

在这个例子中,id 字段将自动递增,每次插入新记录时,id 的值会自动增加。

本题详细解读

1. INTEGER PRIMARY KEYAUTOINCREMENT 的区别

  • INTEGER PRIMARY KEY: 当使用 INTEGER PRIMARY KEY 时,SQLite 会自动将该字段作为自增字段。每次插入新记录时,如果没有指定 id 的值,SQLite 会自动为该字段分配一个比当前表中最大 id 值大 1 的值。

  • AUTOINCREMENT: 使用 AUTOINCREMENT 关键字时,SQLite 会确保 id 值始终递增,并且不会重复使用已删除的 id 值。这意味着即使删除了表中的某些记录,新插入的记录也不会使用这些被删除的 id 值。

2. 使用场景

  • INTEGER PRIMARY KEY: 适用于大多数情况,特别是当你不需要保证 id 值的连续性时。

  • AUTOINCREMENT: 适用于需要严格保证 id 值唯一且连续的场景,例如在某些需要严格记录顺序的系统中。

3. 示例

-- -------------------- ---- -------
-- ------- -------------
------ ----- -------------- -
    -- ------- ------- ----
    ---- ---- --- ----
--

-- ----
------ ---- -------------- ------ ------ ----------
------ ---- -------------- ------ ------ --------

-- ----
------ - ---- ---------------

-- ------ -------------
------ ----- -------------- -
    -- ------- ------- --- --------------
    ---- ---- --- ----
--

-- ----
------ ---- -------------- ------ ------ ------------
------ ---- -------------- ------ ------ ----------

-- ----
------ - ---- ---------------

example_table1 中,id 字段会自动递增,但在删除记录后,新插入的记录可能会重用已删除的 id 值。而在 example_table2 中,id 字段会严格递增,不会重用已删除的 id 值。

纠错
反馈