IT用語集 › データベース › MERGE (SQL)

MERGE (SQL)

データベース Svenska → 更新: 2026-10-23

アップサートと削除を一度に行うSQL標準のコマンド。MERGE INTO target USING source ON ... WHEN MATCHED THEN UPDATE ... WHEN NOT MATCHED THEN INSERT。SQL:2003で標準化され、PostgreSQL 15以降(2022年)、Oracle、SQL Server、MySQL 8以降で使える。

用途は、外部ソース(CSVインポートやレプリケーションのバッチ)から大規模なデータセットを同期することだ。INSERT、UPDATE、DELETEのループを分けて書く代わりに、1文で済む。WHEN NOT MATCHED BY SOURCEで、ターゲットにあってソースにない行(削除、または陳腐化の印付け)を扱える。PostgreSQLのINSERT ... ON CONFLICTとの比較では、MERGEは削除にも対応できて柔軟であり、ON CONFLICTは純粋なアップサートならより単純である。性能面ではMERGEはバッチ処理に最適化されており、並列化も使える。古典的な用途はデータウェアハウスのETLである。

← 用語集に戻る