MyBatis 的唯一索引是声明在哪里的?

MyBatis 不会声明数据库的索引,数据库的索引是在数据库设计的时候就需要声明的。
MyBatis 是面向 Java 的持久层框架,它负责操作数据库的值对象(Value Object)和数据库记录之间的映射。

具体来说,数据库的索引需要在数据库设计或表设计时声明:

  • 在设计表结构时,通过SQL的 CREATE INDEX 语句创建索引。
CREATE UNIQUE INDEX index_name 
ON table_name (column_name);
  • 使用数据库设计工具,在表字段上设计唯一索引。
  • 将字段声明为唯一约束,数据库会自动创建唯一索引。
CREATE TABLE table_name (
   id INT PRIMARY KEY,  
   name VARCHAR(30) UNIQUE
);

所以,MyBatis 不会也不应该声明数据库的索引。

唯一索引和主键的区别:

  • 主键是唯一的、不允许为空,同时自动作为 clustering index。
  • 唯一索引只要求字段的值是唯一的,允许为空。它只是一个非聚集索引。