MySQL: ALTER IGNORE TABLE ADD UNIQUE - どのレコードが残りますか?
MySQL で ALTER IGNORE TABLE ADD UNIQUE ステートメントを使用する場合、これは必須です同一の一意のキー値を持つ重複レコードに関する動作を理解するためです。
具体的には、5.7.4 より前の MySQL バージョンでは、IGNORE 句により重複レコードを別の方法で処理できました。指定した ALTER TABLE 操作の場合:
ALTER IGNORE TABLE `my_table` ADD UNIQUE (`type`, `owner`);
重複するタイプと所有者の値を持つレコードがある場合、動作は主キーの存在によって異なります。
主キー (例: ID AUTO_INCREMENT PRIMARY KEY) を使用する場合
この場合、最小 ID を持つレコードは保持されますが、同じタイプと同じタイプを持つ他のすべての重複レコードは保存されます。所有者の値は削除されます。 IGNORE 句は、重複キー値によって引き起こされる競合を無視するように MySQL に指示します。
主キーなし
主キーが存在しない場合、ALTER IGNORE TABLE の正確な動作は次のようになります。もっと曖昧です。 MySQL のバージョンが異なると、この状況の処理方法が異なる場合があるため、主キーなしで IGNORE を使用することは避けることが一般的に推奨されます。
MySQL 5.7.4 以降では
次のことが重要です。 ALTER TABLE の IGNORE 句は MySQL 5.7.4 以降では削除されていることに注意してください。これらのバージョンで IGNORE を使用しようとすると、エラーが発生します。
以上が「ALTER IGNORE TABLE ADD UNIQUE」は MySQL で重複レコードをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。