如何从mysql表中删除唯一键

时间:2012-02-07 06:56:39

标签: mysql sql unique-key

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

我尝试了这个,但它无法正常工作

alter table tbl_quiz_attempt_master drop unique key;

请帮帮我

由于

7 个答案:

答案 0 :(得分:80)

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

ALTER TABLE tbl_quiz_attempt_master
  DROP INDEX index_name;

要删除主键,请使用此键 -

ALTER TABLE tbl_quiz_attempt_master
  DROP INDEX `PRIMARY`;

ALTER TABLE Syntax

答案 1 :(得分:30)

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

例如,如果在名为customer_id

的列上应用了2个索引
  1. 第一个索引将自己命名为customer_id
  2. 第二个索引的名称为customer_id_2,依此类推。
  3. 要知道要删除或更新的索引的名称

    SHOW INDEX FROM <table_name>
    

    由@Amr建议

    删除索引

    ALTER TABLE <table_name> DROP INDEX <index_name>;
    

答案 2 :(得分:12)

ALTER TABLE mytable DROP INDEX key_Name;

答案 3 :(得分:7)

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

SHOW INDEX FROM table_name;

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

答案 4 :(得分:4)

答案 5 :(得分:0)

在mysql中有两种删除索引的方法。 第一种方法是GUI。在这种方法中,您必须打开MYSQL的GUI界面,然后转到该数据库,然后转到要在其中删除索引的特定表。

在那之后,单击结构选项,然后您可以看到表结构,下面可以看到表索引。您可以通过单击删除选项来删除索引

enter image description here

第二种方法

ALTER TABLE student_login_credentials DROP INDEX created_at;

在这里,student_login_credentials是表名,created_at是列名

答案 6 :(得分:-2)

要添加唯一密钥,请使用:

alter table your_table add UNIQUE(target_column_name);

要删除唯一密钥,请使用:

alter table your_table drop INDEX target_column_name;