web-dev-qa-db-ja.com

MySQL:列を一意にしますか?

生産中のテーブルがあります。一部の列は一意である必要があることを理解しています。 phpMyAdminにアクセスし、それらの列を変更して一意にすることは安全ですか?

ALTER TABLE  `foo` ADD UNIQUE ( `bar` )
16
  1. 重複はありません->問題なくキーを適用します
  2. 重複があります->エラーメッセージが表示され、データは何も起こりませんでした
  3. すべてが一意ですが、NULLが含まれているいくつかの行を除いて、一意の制約が適用されます。これは、一意の値をチェックするときにNULLがチェックされないためです(エラーメッセージなしで一意のフィールドにテーブル全体のNULL値を含めることができます)。

もう1つ、製品DBがある場合は、恐れることなくテストできる開発DBも必要です。

11

以下の手順に従って、phpmyadminパネルから一意の列値を適用します。

テーブル構造に移動します。以下のようにユニークなキーワードをクリックしてください-

enter image description here

確認ボックスから[OK]をクリックします-

enter image description here

列に一意の値の制約が適用されます。または、mysqlクエリを実行できます。

ALTER TABLE user ADD UNIQUE(email);

8
Rahul Mankar

私にはこの問題があり、私の価値観はユニークではありませんでした。また、この問題をPHPMyAdminで編集する簡単な方法も見つかりませんでした。これが私がそれを解決した方法です:

  1. 更新する必要があるテーブルをクリックしました

  2. テーブルをエクスポートし、CSVエクスポートに変更してから、手動で編集して一意でない値を更新しました。

  3. エクスポートしたテーブルにいることを確認して(ヘッダーをそのままにしたかったため)、新しく保存したCSVをインポートしました

誰かが将来的に時間を節約できることを願っています。

1
Eoin

テーブルの既存の値が一意でない場合のみ問題になります。それ以外の場合、問題はないと思います。

1
Oscar Gomez

これらの列に既に重複する値がある場合、エラーが発生します。これらの列に重複する値がない場合は、問題ありません。

1
MD Sayem Ahmed