数据库唯一索引

前言

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

唯一索引使用

唯一索引

以下以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 分钟前
功能详解 01 · 用户注册:从表单到数据库一行
开发语言·数据库·后端·mysql·golang
夏贰四8 分钟前
数据资产平台如何落地企业数据分级合规管控?数据资产平台怎样满足行业数据监管审查要求?
大数据·数据库·人工智能
Ivanqhz16 分钟前
Rust collect() 浅析
开发语言·后端·rust
吴声子夜歌18 分钟前
MongoDB 4.2——聚合框架
数据库·mongodb
卷无止境34 分钟前
python进阶:类方法与静态方法的分野,classmethod 和 staticmethod 到底该怎么选
后端·python
墨神谕34 分钟前
认识一下Unicode(统一码)
android·java·数据库
AINative软件工程36 分钟前
LLM 应用的分层可观测性工程实践:从 Span 到 Prompt Diff,三层 Trace 让 AI 系统真正可调试
后端·ai编程
卷无止境38 分钟前
继承与多态:Python OOP里最容易被用错的两把梯子
后端·python
明月_清风1 小时前
📊 Tokenomics 入门:如何看懂一个项目的代币经济?
后端·web3
明月_清风1 小时前
🏛️ DAO 治理入门:没有老板的公司怎么运转?
后端·web3