回答:
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キーワードはサポートされなくなったため、最初に重複するエントリを削除してください。
ALTER
これを行う前に、前処理を行う必要があります。
ALTER IGNORE
データの安全のため、MySQLバージョン> 5.5およびInnoDBで重複エラーが発生する場合があります。複製された行の最初の行を保持することが正しいことであると確信している場合は、を試してくださいset session old_alter_table=1
。元に戻すことを忘れないでください。mysqlolyk.wordpress.com/2012/02/18/...
このクエリを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)
そのSQLを実行する前に、その列の重複する値を削除する必要があります。その列に既存の重複値があると、mysqlエラー1062が発生します。
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
正解です
挿入部
INSERT IGNORE INTO mytable ....
このコードは、既存のテーブルに一意のキーを設定するという問題を解決するためのものです
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.
ドキュメント