1

同じテーブルの 2 つの異なるレコードのすべての値をコピーしようとしているので、Merge Into を次のように使用します。

Merge into mytable target
    using (select * from mytable where pk = :p1_original) source
    on (target.pk = :p2_new)
    WHEN MATCHED THEN
      UPDATE SET ...

そしてそれはうまくいくので、私はMerge Intoこのように使用しようとしました:

Merge into mytable target
    using mytable source
    on (target.pk = :p2_new) and (source.pk = :p1_original)
    WHEN MATCHED THEN
      UPDATE SET ...

また、それも機能しますが、両方のスクリプトが特にパフォーマンスにおいて同じように機能するかどうかを尋ねたいですか?

Update彼らが後に使用するドキュメントで見た別の質問は、WHEN MATCHED THENSQLステートメントをさらに使用できますか、それとも使用を許可されていますUpdateか?

pk は mytable の主キー (整数) です p1_original は、コピー元のレコードの主キーの値です p2_new は、コピー先のレコードの主キーの値です

4

0 に答える 0