MySQL – 使现有的字段唯一

我有一个已经存在的表应该是唯一的,但不是。 我只知道这一点,因为一个条目与另一个已经存在的条目具有相同的值,这导致了问题。

我如何使这个领域只接受独特的价值观?

ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName); 

对于MySQL 5.7.4或更高版本:

 ALTER TABLE mytbl ADD UNIQUE (columnName); 

从MySQL 5.7.4开始,ALTER TABLE的IGNORE子句被删除,并且它的使用产生一个错误。

因此,请确保先删除重复的条目,因为不再支持IGNORE关键字。

参考

只要在你的db phpmyadmin中写下这个查询即可。

 ALTER TABLE TableName ADD UNIQUE (FieldName) 

例。

 ALTER TABLE user ADD UNIQUE (email) 

谢谢

如果您想要命名约束,请使用以下命令:

 ALTER TABLE myTable ADD CONSTRAINT constraintName UNIQUE (columnName); 

CREATE UNIQUE INDEX foo ON table_name (field_name)

(您必须在此之前删除重复的值。)

 ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName); 

是正确的答案

插入部分

 INSERT IGNORE INTO mytable .... 

最简单和最快的方法是使用phpmyadmin结构表。

使用PHPMYADMIN管理员面板!

那里是俄语,但英文版应该是一样的。 只需点击唯一button。 从那里你也可以使你的列小学或删除。

这个代码是解决我们的问题,为现有的表设置唯一的键

 alter ignore table ioni_groups add unique (group_name);