如何从mysql表中删除唯一键

问题描述 投票:43回答:6

我需要从我的mysql表中删除一个唯一的密钥。如何使用mysql查询删除它。

我试过这个,但它没有用

alter table tbl_quiz_attempt_master drop unique key;

请帮我

谢谢

mysql sql unique-key
6个回答
79
投票

所有键都被命名,你应该使用这样的东西 -

ALTER TABLE tbl_quiz_attempt_master
  DROP INDEX index_name;

丢弃主键使用这个 -

ALTER TABLE tbl_quiz_attempt_master
  DROP INDEX `PRIMARY`;

ALTER TABLE Syntax


30
投票

首先,您需要知道INDEX的确切名称(在这种情况下为唯一键)才能删除或更新它。 INDEX名称通常与列名称相同。如果在列上应用了多个INDEX,MySQL会自动为列名添加后缀,以创建唯一的INDEX名称。 例如,如果在名为customer_id的列上应用了2个索引

  1. 第一个索引将命名为customer_id本身。
  2. 第二个索引的名称为customer_id_2,依此类推。

To know the name of the index you want to delete or update

SHOW INDEX FROM <table_name>

正如@Amr所建议的那样

To delete an index

ALTER TABLE <table_name> DROP INDEX <index_name>;

12
投票
ALTER TABLE mytable DROP INDEX key_Name;

7
投票

对于那些不知道如何获得在index_name的答案中提到的Devart,或者在key_name的答案中提到的Uday Sawant,你可以这样得到它:

SHOW INDEX FROM table_name;

这将显示给定表的所有索引,然后您可以选择要删除的索引或唯一键的名称。



-2
投票

要添加唯一键,请使用:

alter table your_table add UNIQUE(target_column_name);

要删除唯一键,请使用:

alter table your_table drop INDEX target_column_name;
© www.soinside.com 2019 - 2024. All rights reserved.