在MySQL数据库中禁用单个约束而不删除它

在MySQL数据库中禁用单个约束而不删除它,mysql,sql,database,Mysql,Sql,Database,我想禁用多个唯一密钥约束中的一个,而不在MySQL数据库中删除它。有人能告诉我吗 回答这个问题有两种方法 如果您的目标是存储唯一的数据,但只有一种情况例外,那么您就不走运了。表的唯一键约束就是。。。。表的唯一键约束。而将重复键存储在唯一键列中是行不通的 现在,如果您正试图加快数据插入速度,因为您已经知道您的数据是唯一的,那就不同了。在这些情况下,您可以将unique_checks设置为0,插入数据,然后再次打开它们 这描述了以下过程: 引述: 如果将默认值设置为1,则唯一性将检查中的辅助索引 执

我想禁用多个唯一密钥约束中的一个,而不在MySQL数据库中删除它。有人能告诉我吗

回答这个问题有两种方法

如果您的目标是存储唯一的数据,但只有一种情况例外,那么您就不走运了。表的唯一键约束就是。。。。表的唯一键约束。而将重复键存储在唯一键列中是行不通的

现在,如果您正试图加快数据插入速度,因为您已经知道您的数据是唯一的,那就不同了。在这些情况下,您可以将unique_checks设置为0,插入数据,然后再次打开它们

这描述了以下过程:

引述:

如果将默认值设置为1,则唯一性将检查中的辅助索引 执行InnoDB表。如果设置为0,则存储引擎不可用 允许假设输入数据中不存在重复键。 如果您确定您的数据不包含唯一性 如果发生冲突,可以将其设置为0以加快大型表导入到的速度 InnoDB

请注意,将此变量设置为0不需要存储引擎 忽略重复的键。发动机仍允许检查是否存在故障 并在检测到它们时发出重复的密钥错误

换句话说,您可以告诉您的数据库相信您没有插入具有重复密钥的数据。。。它可能仍然会检查,并且当存在唯一键约束时,您肯定不能在表中存储重复的键。但是你也许可以加快速度

顺便说一句,我不知道有什么方法可以禁用特定列的唯一键检查,尽管我不能肯定这是不可能的。也就是说,我不知道,我也不相信有任何方法可以忽略检查一个特定列的许多。。。但我不能肯定地说严格来说这是不可能的


根据您的实际需要,除了在不删除密钥的情况下禁用密钥之外,您还需要了解为什么需要在不删除密钥的情况下禁用该密钥,您还可以在重复密钥上使用。或者,插入忽略可能实现您想要的,但我会非常小心

我需要知道有没有办法禁用约束。我不想放弃它。这怎么可能是复制品?