MERGE を使用して Oracle で Upsert 操作を実行する方法
Oracle Upsert: データの効率的な更新または挿入
問題:
Oracle で更新/挿入操作 (存在する場合はレコードを更新し、存在しない場合は新しいレコードを挿入) を実行するにはどうすればよいですか?
解決策: MERGE
ステートメント
Oracle には専用の UPSERT コマンドがありません。 MERGE
ステートメントはこの機能を提供します。 結合条件に基づいて更新操作と挿入操作を効率的に組み合わせます。
具体例
この例では、ストアド プロシージャ内で MERGE
ステートメントを使用した更新/挿入を示します。
CREATE OR REPLACE PROCEDURE upsert_data (p_id NUMBER, p_value NUMBER) AS BEGIN MERGE INTO my_table target USING dual source ON (target.id = p_id) WHEN MATCHED THEN UPDATE SET target.value = p_value WHEN NOT MATCHED THEN INSERT (id, value) VALUES (p_id, p_value); END; / -- Sample usage and verification CREATE TABLE my_table (id NUMBER PRIMARY KEY, value NUMBER); BEGIN upsert_data(1, 10); upsert_data(1, 20); -- Update existing row upsert_data(2, 30); -- Insert new row END; / SELECT * FROM my_table;
このプロシージャ upsert_data
は ID と値を受け取ります。 MERGE
ステートメントは、指定された p_id
を my_table
内の既存の ID と比較します。
-
WHEN MATCHED
: 一致するものが見つかった場合、value
列はp_value
に更新されます。 -
WHEN NOT MATCHED
: 一致するものが見つからない場合は、指定されたp_id
とp_value
を使用して新しい行が挿入されます。
最後の SELECT
ステートメントは、更新と挿入の結果を組み合わせたものを示します。 このアプローチは効率的であり、条件チェックを伴う個別の UPDATE
ステートメントと INSERT
ステートメントの必要性を回避します。
以上がMERGE を使用して Oracle で Upsert 操作を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
