MySQL-使现有字段唯一

我有一个已经存在的表,其中一个字段应该是唯一的,但不是。我之所以知道这一点,是因为在表中创建了一个与另一个已经存在的条目具有相同值的条目,这就造成了问题。

如何使此字段只接受唯一值?

210107 次浏览
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 关键字。

参考文献

CREATE UNIQUE INDEX foo ON table_name (field_name)

在执行 sql 之前,必须删除该列上的重复值。 该列上任何现有的重复值都将导致您到 < a href = “ https://stackoverflow. com/search? q = mysql + 1062”> mysql error 1062

如果还要命名约束,请使用以下命名方法:

ALTER TABLE myTable
ADD CONSTRAINT constraintName
UNIQUE (columnName);

只需在 dbphpmyadmin 中编写这个查询。

ALTER TABLE TableName ADD UNIQUE (FieldName)

例句: ALTER TABLE user ADD UNIQUE (email)

ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);

就是正确答案

插入部分

INSERT IGNORE INTO mytable ....

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

USE PHPMYADMIN ADMIN PANEL!

在那里,它是在俄罗斯语言,但在英语版本应该是相同的。单击“唯一”按钮。也可以从那里将您的列设置为 PRIMARY 或 DELETE。

此代码用于解决为现有表设置唯一键的问题

alter ignore table ioni_groups add unique (group_name);