MySQL 重複挿入での自動インクリメントの防止
MySQL 5.1.49 を使用する場合、自動インクリメント機能を使用して InnoDB テーブルに重複行を挿入します。主キーにより、挿入が無視された場合でも ID フィールドが増加する可能性があります。これにより、ID シーケンスに不要なギャップが生じる可能性があります。
解決策
重複挿入時の自動インクリメントを防ぐには、変更された INSERT ステートメントを使用できます。
INSERT INTO tablename (tag) SELECT $tag FROM tablename WHERE NOT EXISTS( SELECT tag FROM tablename WHERE tag = $tag ) LIMIT 1
$tag は挿入するタグ値です。このアプローチでは、挿入を試行する前にタグがすでに存在するかどうかのチェックが実行されます。タグが存在しない場合、挿入が実行され、自動インクリメント カウンタは影響を受けません。
このアプローチの利点:
この変更された INSERT ステートメントを使用すると、重複挿入時に自動インクリメント カウンタが増加するのを防ぎ、連続したギャップのない ID シーケンスを保証できます。
以上がMySQL の重複挿入時の自動インクリメントを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。