問題タブ [insert-update]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - MySQLで、行が存在しない場合にのみ挿入し、既存のバージョンが少ない場合にのみ更新するにはどうすればよいですか?
MySQLに行が存在しない場合にのみ挿入し、行が存在し、既存の行のバージョンが新しい行のバージョンよりも小さい(または等しい)場合に更新する方法を探しています。
たとえば、テーブルは次のように定義されます。
また、次のデータが含まれています。
そして、次のテーブルをマージしたいと思います(UPDATE:id列は一意です):
そして、それは以下を生成するはずです(更新:1つだけが更新され、4つが挿入される方法を参照してください):
INSERT ... ON DUPLICATE KEY UPDATE ...ステートメントを見てきましたが、ある種のWHERE句は許可されていません。また、WHEREも許可されていないため、REPLACEを実際に使用することはできません。これは、単一のMySQLステートメントでも可能ですか?
私はJavaを使用しており、PreparedStatementとバッチ処理(addBatch)を使用して、多くのレコードを挿入/更新しようとしています。どんな助けでもいただければ幸いです。
更新:JavaのPreparedStatementでこのクエリを使用する方法はありますか?ID、バージョン、およびデータを含むドキュメントオブジェクトのリストがあります。
mysql - ランキング表を維持するためのベストプラクティス?
MySQL と PHP を使用して、2 つの列user
とscore
.
週に 1 回、ランキング スクリプトを再実行し、各ユーザーのスコアを計算します。
- 多くのユーザーが新しいスコアを持っています
- しない人もいます
- テーブルに追加する新しいユーザーがいる場合があります
MySQL でこれにアプローチする最良の方法は何ですか? update
新しい行を追加する必要がある場合は機能しますか? insert
テーブル全体をもう一度挿入できるように、既存の行をオーバーライドしますか? テーブルを削除して、最初から書き直すのが最善でしょうか?
何千人ものユーザーを除いて...
mysql - `INSERT ... ON DUPLICATE KEY UPDATE`で2行が影響を受けるのはなぜですか?
私は次の表でのINSERT ... ON DUPLICATE KEY UPDATE
ためにやっています:PRIMARY KEY
ただし、これらの値は一意である必要がありますが、2つの行が影響を受けています。
なぜこうなった?
編集
比較については、次のクエリを参照してください。
sql - MS SQL Serverテーブルの主キー列の名前を引き出す方法は?
約75個のテーブルを含むMSSQLServerデータベースがあり、同じ主キーを持つレコードが存在しない場合はテーブルにレコードを挿入しようとしています。存在する場合は更新しようとしています。すべてのテーブルの主キーをvb.netコードにハードコーディングすることはできますが、後日さらにテーブルを追加する必要があり、コードを変更せずにこれを処理する必要があるため、そうはなりません。クエリを使用してテーブルから主キー列の名前を引き出し、同じコードを実行する各テーブルをループできるようにする方法はありますか?
ありがとう、トム
PS SQLに関しては、私は少し初心者なので、時間があれば、簡単に、明確に回答してください。
mysql - 存在する場合は UPDATE レコード。そうでなければ挿入
テーブルに存在する場合と存在しない場合があるレコードを更新したいと考えています。データベースに存在しない場合は、挿入されます。
選択を防ぐために、UPDATE
最初にステートメントを使用し、そうでないかどうかを確認affected_rows > 0
してから、このレコードをテーブルに挿入しています。
これを行うためのより良い方法があるかどうか疑問に思っていましたか?
sql - マルチフィールドインデックスを使用した重複キーの更新について
このテストテーブルには、1つの行エントリと2つのインデックスがあります。最初は主キーで、次にa列とb列の一意のインデックスです。
今、私は次のことをしようとしています
そして、列cの値がフォーム3から100に更新されることを期待していました。しかし、これは発生せず、エラーは発生しません。私は何が間違っているのですか?
database - 挿入と更新を使用してデータベースに未入力の値を渡す
データベースにデータの一部を入力できるという問題が 1 つあります。これをコーディングできますか..挿入および更新クエリを使用しました....値は double 型、integer 型、および string 型です.. ...
mysql - MySQL テーブルに挿入するか、存在する場合は更新します
データベースのテーブルに行を追加したいのですが、同じ一意キーを持つ行が存在する場合、その行を更新したいと考えています。
例えば:
一意のキーがID
で、データベースに の行があるとしID = 1
ます。その場合、その行をこれらの値で更新したいと思います。通常、これはエラーになります。
使用INSERT IGNORE
するとエラーは無視されますが、それでも更新されません。
mysql - INSERT INTO ... ON DUPLICATEKEYUPDATEを使用する場合のMysql主キー
私のテーブル構造は次のとおりです。
私がやろうとしていることは:
新しいエントリを挿入したいが、それを複製したくないとしましょう。グーグルで検索した後、次の形式を見つけました。
問題は私のテーブル、主キー=>にあると思いますid
。次を使用できるように、テーブルを変更するにはどうすればよいですか。
user_id + typeを主キーとして使用できますか?はいの場合、その方法を教えていただけますか?
java - JDBC を使用してテーブルを挿入または更新する
インポートするレコードがいくつかあります。初めて挿入するときでも大丈夫です。同じデータを再度インポートしようとすると、org.postgresql.util.PSQLException: エラー: 重複したキー値が一意の制約に違反しています。データが同じ/または変更されている場合はデータベース内のレコードを更新し、JDBC を使用して新しいデータである場合は挿入するにはどうすればよいですか?
問題は修正されました。以下に回答を示しました。