同じテーブルの 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 THEN
SQLステートメントをさらに使用できますか、それとも使用を許可されていますUpdate
か?
pk は mytable の主キー (整数) です p1_original は、コピー元のレコードの主キーの値です p2_new は、コピー先のレコードの主キーの値です