一意である必要があるがそうではないフィールドを持つ既存のテーブルがあります。既に存在する別のエントリと同じ値を持つエントリがテーブルに作成され、これが問題を引き起こしたため、私はこれを知っています。
このフィールドで一意の値のみを受け入れるようにするにはどうすればよいですか?
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)
(その前に重複する値を削除する必要があります。)
最も簡単で最速の方法は、phpmyadmin構造テーブルを使用することです。
そこはロシア語ですが、英語版でも同じです。 [ユニーク]ボタンをクリックするだけです。また、そこから列をPRIMARYまたはDELETEにすることができます。
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
正しい答えです
挿入部
INSERT IGNORE INTO mytable ....
このコードは、既存のテーブルに一意のキーを設定する問題を解決するためのものです
alter ignore table ioni_groups add unique (group_name);