扫盲 2026.10.11 06:26 33 次浏览 0 条评论

主键primary key讲解

主键就是一张表里拿来唯一标记每一行数据的那个字段。一张表只能有一个主键,值不能重复,也不能为NULL。

最常见的就是弄个自增的id当主键,跟业务没半点关系,纯粹为了方便定位某一行。

CREATE TABLE user (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,  -- 自增主键,每插一条自动+1
  name VARCHAR(20) NOT NULL                   -- 普通字段
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

InnoDB里主键就是聚簇索引,数据按主键顺序排着存,所以拿主键查最快,这一点记死。

单个字段保证不了唯一的时候,可以把两个字段合起来做复合主键,比如订单表用用户id加订单号。但能用单列就别用复合,写SQL累,做关联也累。

删主键是 ALTER TABLE 表名 DROP PRIMARY KEY,想换主键一般先删掉再加新的。主键别用会变的字段,比如手机号、身份证,一旦业务上要改,数据跟着乱。

说点什么 0

行思随记

欢迎来到:行思随记