あなたが説明した方法で、コードでこの状況を処理します。一時テーブルがあり、一時テーブルの ID が更新対象のテーブルと一致する更新を実行し、更新対象のテーブルの ID が null の場合に挿入を実行します。ただし、これは通常、ライブラリ/プログラム設定の更新のために行うため、小さなテーブルではまれにしか実行されません。多くのレコードや毎日の実行では、パフォーマンスが標準に達しない場合があります。
この方法で私が遭遇した主な「落とし穴」は、更新のために、実際に更新を実行する前に、いくつかのフィールドの少なくとも 1 つが変更されていることを確認するために比較を行ったことです。(これの最初の理由は、サーバーの動作に影響を与える可能性のあるいくつかのデフォルトを上書きしないようにすることでした。一時テーブルに実際に変更されていないレコードが含まれている可能性がある場合、これの理由はパフォーマンスかもしれません)。実際にデフォルトの 1 つを更新したい場合がありましたが、古いスクリプトではそれがキャッチされませんでした。したがって、更新する製品を決定するために比較を行う場合は、最初から完全であることを確認するか、比較しないフィールドとその理由を十分に文書化してください。