首页 > 数据库 >Mysql 唯一联合索引和 NULL允许重复

Mysql 唯一联合索引和 NULL允许重复

时间:2023-11-03 11:36:34浏览次数:44  
标签:插入 lebal 索引 字段 Mysql NULL 唯一

我内心一直认为 UNIQUE KEY 是唯一的

  • 只允许出现一个 null
  • 但是联合索引 索引就打破了这个魔咒

请看演示

为 null

原因

  • 唯一索引的作用是确保组成索引的字段的值是唯一的。

  • users 唯一索引是由 name、email 和 lebal 字段组成的。

  • users 这三个字段的组合在表中已经存在,则会触发唯一性约束错误,并阻止插入重复数据。

  • 然而,第一次插入时 lebal 字段的值是 NULL,

  • 第二次插入时 lebal 字段的值同样是 NULL。

  • 由于 NULL 不与任何非 NULL 值相等,

  • 这两个记录在唯一索引的范围内仍然被认为是不同的。

  • 因此,虽然 name 和 email 字段的值相同,但由于 lebal 字段的值不同,这两个插入操作仍然被允许。

标签:插入,lebal,索引,字段,Mysql,NULL,唯一
From: https://www.cnblogs.com/guanchaoguo/p/17807213.html

相关文章

  • 安装MySQL初始化问题由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可
    1.关于安装MySQL初始化遇到的问题出现的是如下图错误 这是安装mysql-8.0.25初始化的时候我遇到的报错解决方法如下:安装微软常用运行库合集[下载地址,没有积分的可以评论区联系我](https://download.csdn.net/download/qq_42603590/19686518)安装好之后就不会报错了好了之......
  • 63.mysql8.0.22安装
    网址:https://dev.mysql.com/downloads/MySQLCommunityServerLinux-Generic1)切换到/data目录下2)创建mysql文件夹mkdirmysql83)切换到mysql文件夹下4)解压下载好的mysql8安装包5)重命名解压出来的文件夹,这里改成mysqlmvmysql-8.0.22mysql86)/data文件夹下创建d......
  • mysql误删数据恢复
    1,是否有备份,可以从备份里边恢复,2、通过工具从数据库binlog日志恢复(前提开始binlog日志功能)。使用my2sql工具进行恢复官网地址:https://github.com/liuhr/my2sql按照官网操作编译,或者直接下载编译好的工具如图所示 将下载好的my2sql的工具 上传到/usr/local/bin目录下 赋......
  • mysql/mariadb上建立新用户并设置远程连接
    mysql/mariadb上建立新用户并设置远程连接 没有做之前总觉得很麻烦,真的做下去了一边上网搜索一边做结果还是很简单的。。想来在LINUX下也是一样吧,最主要的就是之前的安装软件。。。2023年11月03日测试 ,用的mariadb11.1.2,服务器上安装好后命令行下连接 mysql-uroot......
  • Linux中使用Docker容器安装mysql,无法直接使用mysql命令?
    1.问题如果你在Docker容器中运行MySQL,你不能在宿主主机上使用mysql--version命令来检查MySQL版本,因为MySQL客户端工具在宿主主机上未安装。2.解释2.1方法一要查看容器内MySQL的版本,你需要进入到容器中执行相应的命令。以下是一种方法:dockerexec-itmysqlmys......
  • Zabbix6.0监控MySQL数据库
    官方文档:https://www.zabbix.com/cn/integrations/mysql部署过程:1.在MySQL数据库中创建监控账号并授权CREATEUSER'zabbix'@'%'IDENTIFIEDBY'Likun@123';GRANTUSAGE,REPLICATIONCLIENT,PROCESS,SHOWDATABASES,SHOWVIEWON*.*TO'zabbix'@�......
  • zabbix4.x安装出现“configure: error: Not found mysqlclient library”的解决办法
    一、zabbix3.x安装出现“configure:error:Notfoundmysqlclientlibrary”的解决办法1、编译安装zabbix-server出现编译时加参数:--with-mysql在编译时,可能会出现题目中所示的错误,可以通过安装mysql-devel这个库解决:yuminstall mysql-devel-y注:如果出现“......
  • Ansible操作MySQL常用的几个模块
    1. mysql_user模块mysql_user模块用来添加,删除用户以及设置用户权限创建MySQL数据库的用户与口令(非root@localhost用户),直接通过playbooks中的案例来说明吧。-name:创建MySQL数据库用户--user_testmysql_user:#-----登陆数据库login_host:"localhost"......
  • docker-compose安装mysql8+踩坑版
    一、拉取MySQL镜像我这里使用的是MySQL8.0.18,可以自行选择需要的版本。dockerpullmysql:8.0.18二、创建挂载目录mkdir-p/home/docker/mysql8/logmkdir-p/home/docker/mysql8/datamkdir-p/home/docker/mysql8/conf.d三、添加配置文件my.cnf(没有特殊需求可以跳......
  • IDEA中配置Mysql
    我的IDEA版本是2021.2.4刚开始使用IDEA时,想要配置Mysql,搜索了许多教程,却根本找不到DataBase的位置,view中也找不到,后面才找到了问题。在file的setting中找到plugins,搜索Database即可,安装如图插件。 安装后即可在View中找到DBBrowser,然后如图连接选择mysql,另外连接时还需要输......