MySQL--多个字段联合具有唯一性的相关讲解!

mysql> create table vip(
    -> id int,
    -> name varchar(255) unique,
    -> email varchar(255) unique);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into vip(id,name,email) values(1,'zhangsan','zhangsan@123.com');
Query OK, 1 row affected (0.00 sec)

mysql> insert into vip(id,name,email) values(2,'lisi','zhangsan@123.com');
ERROR 1062 (23000): Duplicate entry 'zhangsan@123.com' for key 'vip.email'

在以上SQL语句中,我创建vip表时对 name、email 字段分别进行了唯一性约束。

即 name具有唯一性,email具有唯一性。各自唯一,而这种约束其实也叫列级约束!!

如果采用以上方式创建表的话,肯定创建失败,因为 email 字段重复了。

那如何使 name 、email 两个字段联合起来具有唯一性?

(  所谓的联合起来具有唯一性,其实你可以理解为 nameemail 字段有一个重复也是可以接受的,但不能两个都重复。

mysql> create table vip(
    -> id int,
    -> name varchar(255),
    -> email varchar(255),
    -> unique(name,email)
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into vip(id,name,email) values(1,'zhangsan','zhangsan@123.com');
Query OK, 1 row affected (0.00 sec)

mysql> insert into vip(id,name,email) values(2,'lisi','zhangsan@123.com');
Query OK, 1 row affected (0.00 sec)

mysql> select * from vip;
+------+----------+------------------+
| id   | name     | email            |
+------+----------+------------------+
|    1 | zhangsan | zhangsan@123.com |
|    2 | lisi     | zhangsan@123.com |
+------+----------+------------------+
2 rows in set (0.00 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值