当前位置:首页 > 日记 > 正文

MySQL中的唯一约束及其空的详细解决方案

MySQL中的唯一约束及其空的详细解决方案
前言

以前的要求,在一个简化的描述中,是接受来自其他MQ组的消息,然后在数据库中插入一条记录。为了防止它们重复消息并插入多个重复记录,将一个唯一的索引添加到表中的几个列中。
创建唯一索引的数据idx_un_loan_plan_app(A,B,C);
此时,a、b和c三列不允许为空,唯一性约束也可以工作。
后来,由于需求的变化,先前的唯一性约束被修改了,并且增加了一个列(至于为什么不添加它)。
修改表的数据
idx_un_loan_plan_app下降指数,
添加独特的关键` idx_un_loan_plan_app `(A,B,C,D);
新增加的D是一个类型的日期,并允许为空,默认的值为空。默认值是空的,考虑到并不是所有的记录这段时间。如果是强制设定一个魔法值(如'1970-01-01 08:00:00)作为默认值,这看起来很奇怪。

在蓝色之后,这是个问题,加上D,唯一性约束基本无效。
插入数据(A,B,C,D)值(1,2,3,null);——好
插入数据(A,B,C,D)值(1,2,3,null);——好
插入数据(A,B,C,D)值(1,2,3,null);——好
上面的三个SQL可以成功执行,数据库中会有很多记录。

后来发现,MySQL官方文档已经清楚地说明了这一点,唯一的索引是允许多个空值存在。
惟一索引创建一个约束,使得索引中的所有值必须是明确的。如果试图添加与现有行匹配的键值,则会出现一个错误。对于所有引擎,惟一索引允许包含空值的列的多个空值。
从下表中可以看出,无论采用哪种存储引擎,在生成唯一密钥时都允许使用多个null。

想想看,事实上,这很合理。毕竟,在MySQL中,null表示未知。在SQL中,任何值到null的返回值都是null,而不是true,即使NULL到null的比较也返回null。

所以它只能解决。解决方法也很简单粗暴,直接在线数据刷,1970-01-01 08:00:00作为默认值,然后列允许空,呵呵。

很多人已经在MySQL的官方网站上讨论过这个问题。有些人认为这是MySQL的错误,而另一部分则是带有链接的特性。

MySQL的错误:# 8173:唯一索引允许重复使用空值

总结

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的支持。

相关文章

PS如何设置笔画形状

PS如何设置笔画形状

笔画,形状,如何设置,电脑软件,PS,当我们学习ps时,一定会学会笔画,今天要介绍PS如何设置笔画形状的方法,不是朋友可以参考这篇文章,希望能帮到你! 步: 1、打开ps,选择矩形工具绘制矩形; 2、在属性栏中设置笔画颜色、大小; 3,并设置笔划端点、角点、…

男孩伤心难过地签下男孩伤心难过的

男孩伤心难过地签下男孩伤心难过的

信号,伤心,男孩,签下,电脑软件,对男孩来说,当你伤心难过的时候,你用什么样的词作为你的签名来记录你的心情 男孩们为他们的签名感到难过和难过。 1)不要放弃最美好、最不确定的毅力。 2)幸福就像一个气球,它会无限膨胀并爆炸。 3)你答应我,时间…

如何excel2013固定数值excel2013教

如何excel2013固定数值excel2013教

教程,数值,电脑软件,当我们使用excel2013,我们经常遇到的情况设置行和列的值。我们如何修复这些值让我们来看看萧边。 对excel2013固定值的步骤 首先,打开excel2013,选择要插入的序列号,如下图,萧边应该输入C2的序号,然后单击C2,输入函数=排()- 1,行…

如何解决QQ电脑管家启动问题QQ安全

如何解决QQ电脑管家启动问题QQ安全

启动,如何解决,管家,电脑软件,QQ,当我们使用QQ电脑管家时,我们经常会遇到启动项目的问题。我们如何解决这些问题让我们来告诉你如何解决QQ电脑管家启动问题。 解决QQ电脑管家启动项目的方法 (1)在首页找到快速通道,然后单击Enter。 (2)单击启动…

解决QQ聊天时无法显示的问题

解决QQ聊天时无法显示的问题

无法显示,聊天,电脑软件,QQ,QQ正常使用,但所有用于聊天的图片都无法显示。为什么会这样类似的问题通常是由于用户文件夹过大或文件过多造成的。只要清理个人文件夹就可以解决问题。 打开个人文件夹。该文件夹通常位于用户文件文件夹;腾讯文…

如何快速设置WPS表格单元格格式的W

如何快速设置WPS表格单元格格式的W

教程,设置,单元格,表格,快速,当我们制作WPS表时,我们通常需要设置单元格格式。有没有更快的路让我们向您展示如何快速设置WPS表单单元格格式。 WPS表单元格格式的快速设置 首先选择需要设置单元格格式的单元格,如下图所示: 按Ctrl + 1 ;组合…

最搞笑的个性qq签名

最搞笑的个性qq签名

搞笑,个性,电脑软件,qq,QQ上最搞笑的句子是什么,它可以作为人格签名签名,这是你带给你的最有趣的个性签名,希望你喜欢它。 最搞笑的个性QQ签名{经典} 1)如果你打了你,你需要挑一天吗 2)我希望它简单,但你买不起。 3)含泪播种的人,必须能够笑和收…

PS图象处理软件结满了冰Bingzha画

PS图象处理软件结满了冰Bingzha画

满了,图象,画家,处理软件,电脑软件,本文介绍了如何使用PS图象处理软件软件Bingzha鼠绘冰雪覆盖,画的步骤和方法,我们可以学习好的小物件。 在这种情况下,冰面和冰面的细纹等细节非常多,而且都是半透明的,当性能效果需要更多的耐心时。 最终效…

调查显示:Windows7的早期采用率高于

调查显示:Windows7的早期采用率高于

调查显示,率高,电脑软件,Vista,{新闻} eNet硅谷动力微软正式发布Windows 7操作系统10月23日,据调查,网络应用11月1日,Windows 7的市场占有率已达3.67%;相比微软Vista发布于2007年1月,到今年可能达到3.74%的市场份额。 NET应用程序的操作系统跟踪…

PPT幻灯片自动播放PPT制作课程的设

PPT幻灯片自动播放PPT制作课程的设

设置,幻灯片,自动播放,课程,电脑软件,为了演示PPT演示,我们可以将幻灯片设置为自动播放的方式,减少了许多手动操作步骤。让我们告诉你如何设置PPT幻灯片自动播放方法。 建立PPT幻灯片自动播放的方法: 首先,我们将创建多个幻灯片,单击设计,选择…

Excel2003更改工作簿中工作表的数

Excel2003更改工作簿中工作表的数

数量,工作,电脑软件,当一个新的工作簿时,Excel默认建立的是三工作表,分别为Sheet1、Sheet2和Sheet3,如果你认为数是不够的,你可以改变自己,其操作如下:单击工具菜单选择;;;;在命令,在选项;;对话框中,切换到常规选项卡,检查;;工作簿中的新工作表;复选框,然后在…

如何实现AICDR帧的精确切割功能

如何实现AICDR帧的精确切割功能

如何实现,精确,功能,电脑软件,AICDR,我第一次知道在CorelDRW,学习AI,AI的实现方法是添加图形裁剪面具,这在某些情况下,是不是很方便,因为选择是物体轮廓的面具将始终显示,切割剖面显示,方便准确的排版。这里是另一种方式相当于corelDRW帧精确切割…