如何从MySQL表中删除唯一键

110

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

我已经尝试过这个方法,但它没有起作用。

alter table tbl_quiz_attempt_master drop unique key;

请帮帮我

谢谢


2
将唯一性约束从MySQL中删除的重复帖子发布到https://dev59.com/0XI_5IYBdhLWcg3wBuJs - user3404455
2
可能是如何在MySQL中删除唯一约束?的重复问题。 - Teja Bhagavan Kollepara
8个回答

176

所有键都有名称,你应该像这样使用 -

ALTER TABLE tbl_quiz_attempt_master
  DROP INDEX index_name;

要删除主键,请使用以下方法 -

ALTER TABLE tbl_quiz_attempt_master
  DROP INDEX `PRIMARY`;

ALTER TABLE 语法.


59

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

例如,如果在名为customer_id的列上应用了2个索引,则:

  1. 第一个索引将仍然被命名为customer_id
  2. 第二个索引将被命名为customer_id_2,依此类推。

要知道要删除或更新的索引名称

SHOW INDEX FROM <table_name>

@Amr所建议的

删除一个索引

ALTER TABLE <table_name> DROP INDEX <index_name>;

17

以下是如何获取Devart的答案中提到的index_nameUday Sawant的答案中提到的key_name:

SHOW INDEX FROM table_name;

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


我仍然收到以下错误信息:“您的SQL语法存在错误;”。 - Dean P

16
ALTER TABLE mytable DROP INDEX key_Name;

8

MySQL有两种方法可以删除索引。

第一种方法是使用GUI。在此方法中,您需要打开MYSQL的GUI界面,然后进入该数据库,再进入您想要删除索引的特定表格。

之后点击“结构”选项,您将看到表结构,下方将显示表索引。您可以通过单击“删除”选项来删除索引。

enter image description here

第二种方法是

ALTER TABLE student_login_credentials DROP INDEX created_at;

student_login_credentials是表名,created_at是列名。



4

要从列中删除唯一键,您需要运行以下查询:

ALTER TABLE your_table_name 
    DROP INDEX tableName_columnName_keyName;

在这里,tableName 应该是您的表名,后面跟着一个下划线,然后是 columnName,应该是您想从唯一键约束中删除的列的名称,再跟着一个下划线,最后是 keyName,即您的情况下的唯一键的名称。


2
添加唯一键使用:

alter table your_table add UNIQUE(target_column_name);

要删除唯一键,请使用:

alter table your_table drop INDEX target_column_name;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接