数据库唯一索引

前言

数据库唯一索引,保证索引字段的组合值在表中唯一,而且可以借助唯一索引,保证字段唯一性,使得重复数据不用重复插入

唯一索引使用

唯一索引

以下以MySQL为例子

sql 复制代码
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE sys_user (
  id bigint NOT NULL AUTO_INCREMENT,
  name VARCHAR(255),
  delete_flag INT,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY unique_name_delete_flag (name, delete_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

插入数据

sql 复制代码
insert into sys_user (name, delete_flag) values ('aa', 1);

结果为 再次执行该语句,会发现

不能再重复插入了

唯一索引注意的点

对于唯一索引的字段,不要使用空值插入,要使用非空值,否则会出现数据重复

sql 复制代码
insert into sys_user (name, delete_flag) values (NULL, 1);

无论执行多少次,都会插入数据

删除索引

csharp 复制代码
drop index unique_name_delete_flag on sys_user;

总结

唯一索引能帮助加快查询,以及防止重复数据插入,但是在使用唯一索引必须要注意使用非空值插入

相关推荐
猫咪很可爱7 分钟前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle
XLYcmy21 分钟前
《数字经济赋能城市低碳治理的路径研究检索报告》审阅与修改指导意见——基于完整检索报告体例的完整性诊断、学术规范核查与方法论纠偏 上
数据库·ai·chatgpt·文心一言·检索·知网·豆包
来福猿22 分钟前
SpringCloud Config 源码分析:配置拉取、刷新与多环境管理
后端·spring·spring cloud
泡海椒30 分钟前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
ss2731 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql
电商API_180079052471 小时前
反向海淘多币种结算:汇率该在哪个时点被冻结
java·开发语言·数据库·跨境电商·1688 api
搞AI的金鱼1 小时前
skill agent workflow的区别
数据库
墨子夕2 小时前
创新的潮汐——从科学发现到资本周期的百年规律(第二卷)
大数据·数据库·人工智能
Y3815326622 小时前
印度电商数据采集教程:用 SerpBase 查 Flipkart/Myntra/Ajio 商品(附代码)
数据库·python
企业数字化笔记2 小时前
多租户配额怎么控制?用量口径、并发预留与超额处理的实现方法
java·数据库·spring boot