Respostas:
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
Para o MySQL 5.7.4 ou posterior:
ALTER TABLE mytbl ADD UNIQUE (columnName);
A partir do MySQL 5.7.4, a cláusula IGNORE para ALTER TABLE é removida e seu uso produz um erro.
Portanto, certifique-se de remover as entradas duplicadas primeiro, pois a palavra-chave IGNORE não é mais suportada.
ALTER
de fazer isso.
ALTER IGNORE
ainda pode ocorrer erro duplicado na versão MySQL> 5.5 e no InnoDB para a segurança dos seus dados. Se você tem certeza de que manter a primeira das linhas duplicadas é a coisa certa, tente set session old_alter_table=1
. Não se esqueça de devolvê-lo. mysqlolyk.wordpress.com/2012/02/18/…
Basta escrever esta consulta no seu db phpmyadmin.
ALTER TABLE TableName ADD UNIQUE (FieldName)
Por exemplo: ALTER TABLE user ADD UNIQUE (email)
Se você também quiser nomear a restrição, use este:
ALTER TABLE myTable
ADD CONSTRAINT constraintName
UNIQUE (columnName);
CREATE UNIQUE INDEX foo ON table_name (field_name)
Você precisa remover valores duplicados nessa coluna antes de executar esse sql. Qualquer valor duplicado existente nessa coluna levará você ao erro mysql 1062
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
é a resposta certa
a peça de inserção
INSERT IGNORE INTO mytable ....
Este código é para resolver nosso problema para definir uma chave exclusiva para a tabela existente
alter ignore table ioni_groups add unique (group_name);
If IGNORE is specified, only the first row is used of rows with duplicates on a unique key, The other conflicting rows are deleted.
Docs