MySQL一张表中多个字段组成一个unique key vs 多个字段分别含有一个unique key

前言

一些初学者在给表格的一些字段增加约束比如unique key时可能会混淆多个字段的联合约束和给多个字段分别增加单个约束,有时候会误将多个字段形成的多个约束写成一个联合约束,下面就以unique key举例给大家看看如何添加这两种情况下的约束。

正文

unique key定义:对应字段值在表中必须唯一存在。

  • Case 1: 给一张表的多个字段加上一个unique约束组成联合唯一约束:
    alter table students add unique `unique_index`(`学号`, `姓名`);
    
    注意:unique约束允许多个null值,以下数据插入是允许的:
    INSERT INTO `students`
    (`id`, `学号`, `年龄`, `姓名`)
    VALUES
    ('1', '1', '1', NULL),
    ('2', '1', '2', NULL),
    ('3', '1', '3', '1'),
    ('4', '1', '4', NULL);
    
  • Case 2: 给一张表的多个字段分别加上一个unique约束,不会形成联合的唯一性约束
    alter table students add unique `unique_student_id`(`学号`);
    alter table students add unique `unique_student_name`(`姓名`);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值