当前位置:网站首页>MYSQL 唯一约束
MYSQL 唯一约束
2022-07-30 20:15:00 【m0_66557301】
一、唯一约束(UNIQUE)
唯一约束用来保证一列(或一组列)中的数据是唯一的。类似与主键,但是有以下区别:
- 表可包含多个唯一约束,但每个表只允许一个主键。
- 唯一约束列可包含 NULL 值。
- 唯一约束列可修改或更新。
- 唯一约束列的值可重复使用。
- 唯一约束不能用来定义外键。
二、创建唯一约束
1、 定义表中单列的唯一约束
CREATE TABLE Employees
(
? ? social_num INTEGER UNIQUE
);
-- 给表的 social_num 列定义添加关键字 UNIQUE,使其成为唯一约束。如果在 social_num 列中插入或更新导致重复值的值,MySQL将发出错误消息并拒绝更改
2、定义表的唯一约束(单列)
CREATE TABLE Employees
(
employee_name CHAR(50) NOT NULL,
social_num INTEGER,
phone INTEGER,
UNIQUE (social_num)
);
-- 如果在 social_num 列中插入或更新导致重复值的值,MySQL将发出错误消息并拒绝更改
3、定义表的唯一约束(多列联合)
CREATE TABLE Employees
(
employee_name CHAR(50) NOT NULL,
social_num INTEGER,
phone INTEGER,
UNIQUE (employee_name, social_num)
);
-- 要求两个字段联合起来时唯一的,即employee_name + social_num 是唯一的
4、使用CONSTRAINT语法定义唯一约束(可指定约束名)
(1)创建表时定义
-- 创建表时定义
CREATE TABLE Employees
(
employee_name CHAR(50) NOT NULL,
social_num INTEGER,
phone INTEGER UNIQUE,
employee_address CHAR(255),
CONSTRAINT name_address UNIQUE (employee_name, employee_address)
);
-- 插入数据
INSERT INTO Employees(employee_name, employee_address) VALUES('a', 'NJ');
- 第一个UNIQUE约束应用于phone列,表示每个雇员必须具有不同的电话号码
- 第二个UNIQUE约束名称为name_address,表示雇员employee_name可以重复,employee_address可以重复,但employee_name+employee_address必须唯一不可重复。例:a + NJ 和 a + SH
a + NJ 和 b + NJ
a + NJ 和 b + SH
a + NJ 和 a + NJ 报错“1062 - Duplicate entry”

(2)在已创建好的表上加唯一约束
-- 在已创建好的表上加唯一约束,指定约束名为uni_name
ALTER TABLE Employees
ADD CONSTRAINT uni_name UNIQUE (employee_name);
-- 在已创建好的表上加唯一约束,不指定约束名
ALTER TABLE Employees
ADD UNIQUE (employee_name);
三、删除唯一约束
添加唯一约束时,MySQL将为数据库创建一个相应的 BTREE 索引,所以删除索引即可删除约束。通过如下命令查询索引:
SHOW INDEX FROM 表名;

-- 格式一:
DROP INDEX 约束名 ON 表名;
-- 例如:
DROP INDEX name_address ON Employees;
-- 格式二:
ALTER TABLE 表名
DROP INDEX 约束名;
-- 例如:
ALTER TABLE Employees
DROP INDEX name_address;
参考学习链接:
mysql联合唯一约束_MySQL中添加唯一约束和联合唯一约束 - 百度文库
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- idea plugins搜索不到插件
- Database Tuning - Database Tuning
- vlookup函数匹配不出来的原因及解决方法
- 历史上的今天:Win10 七周年;微软和雅虎的搜索协议;微软发行 NT 4.0
- MySQL kills 10 questions, how many questions can you stick to?
- 推荐系统:概述【架构:用户/物品特征工程---->召回层---->排序层---->测试/评估】【冷启动问题、实时性问题】
- 第04章 逻辑架构【1.MySQL架构篇】【MySQL高级】
- Weak Banks to data conversion ability?Matt software help solve bank dilemma
- Recommendation System - Sorting Layer - Model (1): Embedding + MLP (Multilayer Perceptron) Model [Deep Crossing Model: Classic Embedding + MLP Model Structure]
- MySQL database --- Addition, deletion, modification and query of MySQL tables (advanced)
猜你喜欢

PPT如何开启演讲者模式?PPT开启演讲者模式的方法
![Recommendation System - Sorting Layer: Sorting Layer Architecture [User and Item Feature Processing Steps]](/img/e7/4000f9f1f091970442ae3ecbc34c9f.png)
Recommendation System - Sorting Layer: Sorting Layer Architecture [User and Item Feature Processing Steps]

Office365无法打开word文档怎么办?Office365无法打开word文档的解决方法

用jOOQ 3.17投射类型安全的嵌套表记录

WPS没有在任务栏显示所有窗口选项怎么回事?

MySQL eight-part text recitation version

flowable工作流所有业务概念

想要写出好的测试用例,先要学会测试设计

第03章 用户和权限管理【1.MySQL架构篇】【MySQL高级】
![Recommendation system: evaluation index [offline evaluation index: RMSE (root mean square error), AUC, precision, recall, F1] [online evaluation: A/B test] [generally required response time <0.5s]](/img/ff/9c49d38a655e3f7f221b219d5069c9.png)
Recommendation system: evaluation index [offline evaluation index: RMSE (root mean square error), AUC, precision, recall, F1] [online evaluation: A/B test] [generally required response time <0.5s]
随机推荐
Recommendation system: evaluation index [offline evaluation index: RMSE (root mean square error), AUC, precision, recall, F1] [online evaluation: A/B test] [generally required response time <0.5s]
JUnit 5测试中的临时目录(附实例及代码)
多线程获取官方汇率
PR视频剪辑软件教程
Flink_CDC搭建及简单使用
Android Studio 实现登录注册-源代码 (连接MySql数据库)
Linux download and install mysql5.7 version tutorial the most complete and detailed explanation
如何优化OpenSumi终端性能?
Database indexes: indexes are not a panacea
推荐系统:冷启动问题【用户冷启动、物品冷启动、系统冷启动】
推荐系统-排序层-模型(一):Embedding + MLP(多层感知机)模型【Deep Crossing模型:经典的Embedding+MLP模型结构】
6.3有定型性 第七章
HarmonyOS笔记-----------(三)
KEIL问题:【keil Error: failed to execute ‘C:\Keil\ARM\ARMCC‘】
Maxwell 一款简单易上手的实时抓取Mysql数据的软件
TensorFlow2:概述
vookloop函数怎么用?vlookup函数的使用方法介绍
vlookup函数匹配不出来只显示公式的解决方法
Difference Between Concurrency and Parallelism
【视频】极值理论EVT与R语言应用:GPD模型火灾损失分布分析