How to drop unique in MySQL?

Create Table: CREATE TABLE `fuinfo` (
`fid` int(10) unsigned NOT NULL,
`name` varchar(40) NOT NULL,
`email` varchar(128) NOT NULL,
UNIQUE KEY `email` (`email`),
UNIQUE KEY `fid` (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

I want to drop the unique key on email,how?

239665 次浏览

只需使用以下 SQL 脚本删除 MySQL 中的索引:

alter table fuinfo drop index email;

有一个更好的方法,不需要你改变表:

mysql> DROP INDEX email ON fuinfo;

其中 email 是唯一键(index)的名称。

你也可以像这样把它带回来:

mysql> CREATE UNIQUE INDEX email ON fuinfo(email);

其中 IDEX 之后的 email 是索引的名称,并且不是可选的。可以使用 KEY 代替 INDEX。

还可以创建(删除)多列唯一的 indeces,如下所示:

mysql> CREATE UNIQUE INDEX email_fid ON fuinfo(email, fid);
mysql> DROP INDEX email_fid ON fuinfo;

如果您没有指定多列索引的名称,您可以像这样删除它:

mysql> DROP INDEX email ON fuinfo;

其中 email 是列名。

将索引电子邮件删除到 fuinfo;

其中 电子邮件是唯一键(而不是列名)

mysql> SHOW CREATE TABLE fuinfo;

这里您可以看到唯一键的名称,例如,它可以是 email _ 2。

mysql> DROP INDEX email_2 ON fuinfo;


mysql> DESCRIBE fuinfo;

这应该显示索引已被删除

DROP INDEX column_name ON table _ name

从 sql 选项卡中选择数据库和查询。这将删除特定列的索引。它在 PHP MyADMIN 中对我很有用

这可以帮助其他人

alter table fuinfo drop index fuinfo_email_unique

使用以下查询:

ALTER TABLE `table_name` DROP INDEX key_name;

如果您不知道 key _ name,那么首先尝试下面的查询,您可以得到 key _ name。

SHOW CREATE TABLE table_name

或者

SHOW INDEX FROM table_name;

如果要从 mysql 表中删除/删除主键,请使用以下查询

ALTER TABLE `products` DROP INDEX `PRIMARY`;

代码取自: http://chandreshrana.blogspot.in/2015/10/how-to-remove-unique-key-from-mysql.html

ALTER TABLE 0_value_addition_setup  DROP  INDEX   value_code

尝试删除列的唯一性:

ALTER TABLE  `0_ms_labdip_details` DROP INDEX column_tcx

在 phpmyadmin 中运行此代码并删除列的惟一性

对于 MySQL 5.7.11

步骤1: 首先获得唯一密钥

使用以下查询获取:

1.1)显示 CREATE TABLE User;

最后,会是这样的:

.....

.....

唯一密钥 UK_8bv559q1gobqoulqpitq0gvr6(phoneNum)

.....

....

步骤2: 通过此查询删除 Unique 键。

用户 DROP INDEX UK _ 8bv559q1gobqoulqpitq0gvr6;

步骤3: 通过这个查询检查表信息:

DESC 用户;

这应该显示索引已被删除

仅此而已。

 ALTER TABLE [table name] DROP KEY [key name];

会成功的。