問題:
重複した値を持つテーブルに数千のレコードを挿入すると、データの整合性が損なわれる可能性があります問題。 PHP でスクリプトをループするときにエントリの重複を防ぐにはどうすればよいですか?
解決策:
一意のキーを作成します:
一意の定義一意である必要がある列の組み合わせに関する INDEX (例: pageId と名前):
ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name);
重複の処理:
次に、重複を処理する方法を決定する必要がありますエントリ:
重複を無視:
$query = "INSERT IGNORE INTO thetable (pageid, name) VALUES (1, 'foo'), (1, 'foo')";
既存のものを上書きレコード:
$query = "INSERT INTO thetable (pageid, name, somefield) VALUES (1, 'foo', 'first') ON DUPLICATE KEY UPDATE (somefield = 'first')";
カウンター更新:
$query = "INSERT INTO thetable (pageid, name) VALUES (1, 'foo'), (1, 'foo') ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1)";
以上がPHP にデータを挿入するときに MySQL で重複エントリを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。