2010-08-15 94 views

回答

249

唯一约束也是一个索引。

首先使用SHOW INDEX FROM tbl_name找出索引的名称。索引的名称存储在该查询结果中名为key_name的列中。

然后你可以使用DROP INDEX

DROP INDEX index_name ON tbl_name 

ALTER TABLE语法:

ALTER TABLE tbl_name DROP INDEX index_name 
+0

对不起,先生我提出这个问题之前曾尝试过,但它不工作 – 2010-08-15 14:26:08

+0

@Ankur Mukherjee:我忘了提及:您必须将tbl_name和index_name分别更改为实际表的名称和实际索引的名称。你可以在MySQL查询浏览器中看到这些名字。你也可以做'SHOW CREATE TABLE tbl_name'。 – 2010-08-15 14:33:30

+1

主席先生,我知道这一点,而且我只尝试过 – 2010-08-15 14:34:46

10

能够将一个独特的键约束表上的索引是PRIMARYUNIQUE指标。

要删除列上的唯一键约束但保留索引,可以删除并重新创建类型为INDEX的索引。

请注意,所有表格都有一个标记为PRIMARY的索引是个好主意。

+1

Upvoted是因为@thomasrutter触及了删除唯一约束**可能会对查询性能产生不利影响的事实** - 这可以通过将“UNIQUE”索引与一个常规的'INDEX'。 – Alex 2014-04-18 16:17:22

+0

它工作@thomastrutter,谢谢 – 2017-06-26 10:29:24

101

您可以DROP从表使用phpMyAdmin作为请求的唯一约束,如下表所示。翼展领域已经有了一个独特的约束。在这种情况下,约束的名称与字段名称相同。

alt text

+29

重要的是要注意,索引部分默认情况下是折叠的,并通过12px字体中的一个小而细微的链接进行扩展,其中该部分在屏幕截图中。 但是,多亏了你,我找到了它。保佑你的脸。 +1 – Jack 2013-05-25 17:39:21

+0

我刚刚删除了25个索引... – CousinCocaine 2015-09-29 19:46:13

+0

真的很有帮助回答 – 2016-07-15 07:14:25

1

对于WAMP 3.0: 插销结构 下面添加1列,你会看到 ' - 索引' 任何你想要的指数 点击-Indexes和下降。

0

如果您想要从mysql数据库表中删除唯一约束,请使用alter table with drop index。

实施例:

创建表unique_constraints(UNID INT,ACTIVITY_NAME VARCHAR(100),约束activty_uqniue UNIQUE(ACTIVITY_NAME),主键(UNID));

alter table unique_constraints drop index activty_uqniue; 

activty_uqniueACTIVITY_NAME列唯一约束。