SQLite 中如何定义主键?

推荐答案

在 SQLite 中,可以通过以下方式定义主键:

  1. 单列主键

  2. 复合主键

  3. 自增主键

本题详细解读

1. 单列主键

在 SQLite 中,单列主键是最常见的主键形式。通过在列定义中使用 PRIMARY KEY 关键字,可以将该列定义为主键。主键列的值必须是唯一的,且不能为 NULL

示例:

在这个例子中,user_id 列被定义为主键,确保每个用户的 user_id 是唯一的。

2. 复合主键

复合主键是指由多个列组合而成的主键。在 SQLite 中,可以通过在 CREATE TABLE 语句中使用 PRIMARY KEY 子句来定义复合主键。

示例:

在这个例子中,order_idproduct_id 两列共同构成了复合主键,确保每个订单中的每个产品组合是唯一的。

3. 自增主键

SQLite 提供了 AUTOINCREMENT 关键字,用于自动递增主键列的值。使用 AUTOINCREMENT 时,SQLite 会自动为新插入的行生成一个唯一的整数值。

示例:

在这个例子中,id 列被定义为自增主键,每次插入新记录时,id 列的值会自动递增。

注意事项

  • 在 SQLite 中,主键列默认是 NOT NULL 的,即使没有显式指定。
  • 使用 AUTOINCREMENT 时,SQLite 会维护一个内部表来跟踪已使用的最大主键值,因此可能会稍微影响性能。
  • 复合主键的列顺序会影响索引的创建和使用,因此在设计复合主键时需要考虑查询的需求。
纠错
反馈