一意である必要があるがそうではないフィールドを持つ既存のテーブルがあります。これを知っているのは、別の既存のエントリと同じ値のエントリがテーブルに作成され、これが問題を引き起こしたためです。
このフィールドが一意の値のみを受け入れるようにするにはどうすればよいですか?
一意である必要があるがそうではないフィールドを持つ既存のテーブルがあります。これを知っているのは、別の既存のエントリと同じ値のエントリがテーブルに作成され、これが問題を引き起こしたためです。
このフィールドが一意の値のみを受け入れるようにするにはどうすればよいですか?
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 TABLE myTable
ADD CONSTRAINT constraintName
UNIQUE (columnName);
CREATE UNIQUE INDEX foo ON table_name (field_name)
そのSQLを実行する前に、その列の重複した値を削除する必要があります。その列に既存の重複値があると、mysql エラー 1062 が発生します。