MySQL で「ALTER IGNORE TABLE ADD UNIQUE」を使用すると、どのレコードが保持されますか?

Mary-Kate Olsen
リリース: 2024-11-04 02:51:29
オリジナル
756 人が閲覧しました

Which record is preserved when using `ALTER IGNORE TABLE ADD UNIQUE` in MySQL?

MySQL: ALTER IGNORE TABLE ADD UNIQUE - レコード切り捨ての影響

IGNORE 句を含む ALTER TABLE ステートメントは、一意制約を追加するために使用されますテーブルにコピーすると、重複レコードが削除される可能性があります。ただし、保持される特定のレコードによって疑問が生じる可能性があります。

質問:

次のステートメントを実行するとき:

ALTER IGNORE TABLE `my_table`
ADD UNIQUE (`type`, `owner`);
ログイン後にコピー

どのレコード同じタイプと所有者の値を持つ重複レコードが複数ある場合、保存されますか?

回答:

MySQL 5.7.4 以降、IGNORE 句は廃止されました。

ただし、IGNORE 句を許可する MySQL の以前のバージョンでは:

  • 最初のレコードが保持される: のみ一意のキーの組み合わせを持つテーブル内の最初 行が保持されます。
  • 重複行の切り捨て: 同じ一意のキーの組み合わせを持つ他のすべての行は になります。削除されました.

MySQL ドキュメントによると、「最初」とは主キー値が最も小さいレコードを指す可能性があります。あなたの場合、ID 列が主キーであると仮定すると、最小の ID を持つレコードが保持されます。

以上がMySQL で「ALTER IGNORE TABLE ADD UNIQUE」を使用すると、どのレコードが保持されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート