温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

主键和唯一键区别

发布时间:2026-09-23 16:39:48 来源:亿速云 阅读:81 作者:小樊 栏目:数据库

在数据库(如 MySQL、PostgreSQL 等)中,**主键(Primary Key)唯一键(Unique Key / Unique Constraint)**都用于保证数据的唯一性,但它们有以下重要区别:


1. 是否允许为空(NULL)

  • 主键不允许 NULL,且每一行都必须有值
  • 唯一键允许 NULL(多数数据库中唯一键可包含多个 NULL,因为 NULL 不等于 NULL)

2. 数量限制

  • 主键一个表只能有一个主键(可以是单列或多列组合)
  • 唯一键一个表可以有多个唯一键

3. 是否用于标识记录

  • 主键:用于唯一标识一行记录,是表的逻辑标识
  • 唯一键:用于防止重复数据,但不强制作为记录标识

4. 是否自动创建索引

  • 两者都会自动创建索引
  • 主键通常创建为聚集索引(如 MySQL InnoDB)
  • 唯一键创建为普通唯一索引

5. 示例对比

CREATE TABLE user (
  id INT PRIMARY KEY,        -- 主键,不能重复,不能为空
  email VARCHAR(100) UNIQUE, -- 唯一键,不能重复,但可为 NULL
  phone VARCHAR(20) UNIQUE   -- 另一个唯一键
);

简单总结

对比项 主键 唯一键
唯一性
允许 NULL
数量 只能 1 个 可多个
标识记录

如果你愿意,我也可以用通俗比喻或结合某个具体数据库再讲一遍。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI