SQLite 中如何定义唯一约束?

推荐答案

在 SQLite 中,可以通过以下两种方式定义唯一约束:

  1. 在创建表时定义唯一约束

  2. 在已存在的表上添加唯一约束

本题详细解读

1. 创建表时定义唯一约束

在创建表时,可以通过 UNIQUE 关键字为表中的一列或多列定义唯一约束。唯一约束确保表中的每一行在指定的列或列组合中具有唯一的值。

示例

在这个例子中,usernameemail 列都被定义为唯一约束,这意味着表中不能有两条记录具有相同的 usernameemail

2. 在已存在的表上添加唯一约束

如果表已经存在,可以通过创建唯一索引来添加唯一约束。唯一索引不仅加速查询,还确保索引列中的值是唯一的。

示例

在这个例子中,idx_username 是一个唯一索引,它确保 users 表中的 username 列的值是唯一的。

注意事项

  • 唯一约束可以应用于单列或多列。如果应用于多列,则这些列的组合值必须是唯一的。
  • 如果尝试插入或更新数据时违反了唯一约束,SQLite 将抛出 UNIQUE constraint failed 错误。
  • 唯一约束与主键约束不同,主键约束不仅要求唯一性,还要求列值不能为 NULL,而唯一约束允许 NULL 值(除非显式指定 NOT NULL)。
纠错
反馈