[解決済み] MySQL - 無視挿入エラー: 重複エントリ
質問
私はPHPで仕事をしています。
ユニークフィールドを持つDBに新しいレコードを挿入する適切な方法は何ですか? 私はバッチで多くのレコードを挿入しており、私は新しいものが挿入されるだけで、重複したエントリのためのエラーは欲しくありません。
最初にSELECTを作成し、INSERTの前にエントリがすでにそこにあるかどうかを確認する唯一の方法があります - そしてSELECTがレコードを返さない場合にのみINSERTするために?そうでないことを望みます。
私は、エラーなしでこれらの挿入を無視するように、どうにかしてMySQLに伝えたいと思います。
ありがとうございます。
どのように解決するのですか?
あなたは を挿入する... 無視する 構文は、重複するレコードがあるときに何もしないことを望む場合に使用します。
を使用することができます。 REPLACE INTO 構文を使用すると、同じキーを持つ新しいレコードで古いレコードを上書きすることができます。
あるいは INSERT... を重複したキーの更新時に 構文を使って、重複が発生したときに代わりにレコードの更新を実行することもできます。
編集:いくつかの例を追加しようと思いました。
例
という名前のテーブルがあるとします。
tbl
という名前のテーブルがあり、2つのカラムがあるとします。
id
と
value
. id=1、value=1というエントリーが1つあります。 以下のようなステートメントを実行すると
REPLACE INTO tbl VALUES(1,50);
id=1 value=50のレコードが1つ残っています。 しかし、レコード全体が最初に削除され、その後、再挿入されたことに注意してください。 次に
INSERT IGNORE INTO tbl VALUES (1,10);
操作は正常に実行されますが、何も挿入されません。 id=1 と value=50 が残っています。 最後に
INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200;
これで、id=1、value=200のレコードが1つできました。
関連
-
[解決済み] SAJAXは死んだか?何を置き換えるべきか?
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] "INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"
-
[解決済み] MySQLで重複する値を検索する
-
[解決済み】ホスト 'xxx.xx.xxx.xxx' がこのMySQLサーバーへの接続を許可されていない。
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み] コマンドの同期がとれていない。
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み] [Solved] Fatal error: 非オブジェクトのメンバ関数fetch_assoc()の呼び出し [重複]。
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
[解決済み】In_arrayが動作しない。
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。