ホームページ >データベース >mysql チュートリアル >SQL Server は MySQL の ON DUPLICATE KEY UPDATE のように重複キーをどのように処理しますか?
SQL Server は MySQL の ON DUPLICATE KEY UPDATE と同等の機能を提供しますか?
MySQL では、ON DUPLICATE KEY UPDATE により、新しい行を挿入する代わりに既存の行を更新することでキー値を重複させます。この機能は、一意キー制約または主キー制約を管理する場合に特に役立ちます。
SQL Server は、MERGE ステートメントを通じて同等の機能を提供します。 MERGE ステートメントは、INSERT 操作と UPDATE 操作を 1 つのコマンドに結合し、開発者が指定された条件に基づいて新しい行を挿入したり、既存の行を更新したりできるようにします。
たとえば、次の MERGE ステートメントは、新しい行を挿入する方法を示しています。 rtu_id と time_local の組み合わせがまだ存在しない場合にのみ、METER_DATA テーブル。重複が存在する場合は、行が更新されます。
MERGE INTO MyBigDB.dbo.METER_DATA WITH (HOLDLOCK) AS target USING (SELECT 77748 AS rtu_id ,'12B096876' AS meter_id ,56112 AS meter_reading ,'20150602 00:20:11' AS time_local) AS source (rtu_id, meter_id, meter_reading, time_local) ON (target.rtu_id = source.rtu_id AND target.time_local = source.time_local) WHEN MATCHED THEN UPDATE SET meter_id = '12B096876' ,meter_reading = 56112 WHEN NOT MATCHED THEN INSERT (rtu_id, meter_id, meter_reading, time_local) VALUES (77748, '12B096876', 56112, '20150602 00:20:11');
WHEN MATCHED 句は、指定された条件を満たす既存の行に対して更新操作を実行します。 WHEN NOT MATCHED 句は、条件を満たさない新しい行の挿入操作を実行します。
MERGE ステートメントを利用することで、SQL Server は MySQL の ON DUPLICATE KEY UPDATE と同様の包括的な機能を提供し、キー値が重複しています。
以上がSQL Server は MySQL の ON DUPLICATE KEY UPDATE のように重複キーをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。