2010-08-15 92 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列唯一約束。