質問: mysqlに「存在しない場合に挿入」するにはどうすればいいですか? 私はグーグルで始めて、ミューテックステーブルについて話しているこの article を見つけました。私は〜1400万レコードのテーブルを持っています。同じ形式でさらにデータを追加したい場合、挿入したいレコードが一対の照会を使用しないで既に存在しないようにする方法があります(つまり、検査する照会と挿入する照会が結果セットである場合)。空の)?フィールドに対するunique制約はinsertがすでに存在する場合に失敗することを保証しますか? 単に の制約で、私がphp経由でinsertを発行すると、スクリプトがぎくしゃくするようです。
回答: 重複キー更新時 、または 無視を挿入 は、mysqlで実行可能なソリューションです。 重複キーの更新時 mysql.comに基づく更新の例insert into table (a,b,c) values (1,2,3) on duplicate key update c=c+1; update table set c=c+1 where a=1; mysql.comに基づく insert ignore の例insert [low_priority | delayed | high_priority] [ignore] [into] tbl_name [(col_name,...)] {values | value} ({expr | default},...),(...),... [ on duplicate key update col_name=expr [, col_name=expr] ... ] または:insert [low_priority | delayed | high_priority] [ignore] [into] tbl_name set col_name={expr | default}, ... [ on duplicate key update col_name=expr [, col_name=expr] ... ] または:insert [low_priority | high_priority] [ignore] [into] tbl_name [(col_name,...)] select ... [ on duplicate key update col_name=expr [, col_name=expr] ... ]