問題タブ [upsert]
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.
mysql - レコードがすでに存在する場合は、mysqlデータベースに挿入し、更新します
mysqlデータベースに挿入する方法、レコードがすでに存在する場合は、更新します...このページに解決策があることを知っています:http: //dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate .html
sib_table
このテーブルに別の兄弟を追加したい場合、SQLはどうなりますか。
redis - Redis で操作をアップサート (置換) するにはどうすればよいですか? (パイプラインとして)
アップサート (置換)
- 存在する場合は更新
- 存在しない場合に挿入
(主キーをパイプラインとして使用)
sql - SQL Serverでマージせずに5000以上の行をアップサートするための最も効率的/ベストプラクティスは何ですか?
1秒あたり約50ヒットを受信するWebアプリケーションがあり、ヒットごとに中央のSQLServerデータベースに約10レコードをアップサートしています。ほぼ3秒に1回、単一のインバウンド接続に対して5000以上の行をアップサーティングしています。
現在、XMLをパラメーターとして受け取るストアドプロシージャがあります。行フィールドが一致しないXMLからメインテーブルにINSERTを実行してから、XMLの値でテーブル全体を更新します。
動作は決して遅くはありませんが、これを行うための最良の方法を本当に知りたいです。SQL Server 2005で実行しているので、MERGE操作はありません。
mysql - UPSERTを実行して、更新部分で新しい値と古い値の両方を使用できるようにする方法
ばかげているが単純な例:受け取ったアイテムの合計を保持するテーブル「Item」があると仮定します。
ここではアイテム名が主キーです。アイテムAを数量Xで受け取ったときに、次のことを達成する方法。
アイテムが存在しない場合は、アイテムAの新しいリコアを挿入し、在庫のあるアイテムをXに設定します。在庫のあるアイテムがYであるレコードが存在する場合、在庫のあるアイテムの新しい値は(X + Y)です。
私の問題は、実際のテーブルに複数の列があることです。更新部分に複数のselectステートメントを記述するのは良い考えですか?
もちろん、コードでそれを行うことはできますが、より良い方法はありますか?
sql - Scope_IDENTITYでのMERGEINTOの使用
次のステートメントでをMerge into
実行すると、正しい代理キー情報が返されます。ただし、両方を実行すると、次に使用可能な代理キーが返されます。そして、を追加すると、との両方でnullが発生します。insert
Scope_Identity
update
Scope_Identity
@@Identity
output
update
insert
update
との両方で代理キーを返すにはどうすればよいinsert
ですか?
sql - MS-access でのアップサート
行が存在する場合は更新され、存在しない場合は挿入されるように、MS-Access 2000 用の SQL クエリを作成する必要があります。(これは「アップサート」と呼ばれると思います)
すなわち
行が存在する場合...
存在しない場合...
これは 1 つのクエリで実行できますか?
php - データが存在する場合の更新方法それ以外の場合は、新しいデータを挿入します (複数の行)
今日の日付がデータベースにない場合、挿入および更新ステートメントを作成する必要があります。それ以外の場合は、QTYを更新します(Excelから[私が行ったこの部分])今日から取得します。
ただし、挿入および更新する必要がある行がたくさんあります。
1) データベースで過去 4 日間をチェックします。今日が含まれていない場合は、今日のデータを挿入し、過去 3 日間のデータを更新します。一方、今日が含まれている場合は、更新されます。
PS: 使用しようとしましINSERT... ON DUPLICATE KEY UPDATE
たが、影響を受けるのは 1 行だけです。
if else statement 、これを使用すると、1行のデータのみが挿入され、残りは更新されます。
アドバイスや例を教えてください。
c# - 動的テーブル名を持つテーブルへの UPSERT
テーブルに UPSERT するためのより良い方法は次のとおりです。
- ~1 行/秒でのデータ アップサート
- テーブル名は動的で、渡された ObjectID パラメータを使用して生成されます
次の手順では、「ORA-00942: 表またはビューが存在しません」がスローされます。
- どうやら MERGE は TableName が動的にできないため機能しませんか???
- 私は初心者で、コーディングを始めて 3 か月目です。現在 3 日間、STACKOVERFLOW と Google で検索し、あらゆる種類の面白くて絶望的な解決策を試しています。
drupal - Drupal 7 DBTNG:db_merge()を使用するときに最後のINSERTIDを取得する方法
db_mergeを使用する場合、INSERTが行われた場合、最後の挿入IDを取得できないようです。
MergeQuery :: execute()は、InsertQuery :: execute()のように挿入IDではなく、挿入が行われた場合にMergeQuery::STATUS_INSERTを返します。
db_mergeを使用するときに最後の挿入IDを取得するための洗練された方法はありますか?
ソース: http: //api.drupal.org/api/drupal/includes--database--query.inc/function/MergeQuery%3A%3Aexecute/7 http://api.drupal.org/api/drupal/includes --データベース--query.inc/function / MergeQuery%3A%3Aexecute / 7
deadlock - SQL Server 2008 R2 のデッドロック
サーバー: SQL Server 2008R2 クライアント: Excel/ADO - 8 クライアント サーバー ハードウェア: 8 コア/16GB メモリ/OS: WinServer 2008SR2
Insert/Update ストアド プロシージャと Merge/Matched ストアド プロシージャの両方でデッドロックが発生します。
ここで挿入/更新について多くのことを読み、その結果、挿入/更新をマージ/一致に変更しましたが、実行されているわずか 8 つのクライアントから非常に頻繁にデッドロック エラー (10 分ごとに約 1 回) が発生します。 1 分あたり 2 回の速度で更新を要求するバッチ モード。
対照的に、各クライアントは 1 分あたり約 20,000 アイテムを別のテーブルに挿入しますが、まったく問題はありません。
このようなわずか 8 つのクライアント (特に Excel/ADO/VBA) がこの DB にストレスを与えることができるとは思わないので、これらのデッドロックの問題を解決するための支援が欲しいです!
また、クライアントから直接 SQL コマンドを発行していないことにも注意してください。すべての SQL コマンドは、ストアド プロシージャを介して呼び出されます。
現在の SP: