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结构表。
那里是俄语,但英文版应该是一样的。 只需点击唯一button。 从那里你也可以使你的列小学或删除。
这个代码是解决我们的问题,为现有的表设置唯一的键
alter ignore table ioni_groups add unique (group_name);