実行したいクエリ:
BEGIN TRANSACTION
INSERT INTO TABLE_B SELECT * FROM TABLE_A WHERE SOME_COLUMN = 'something'
DELETE FROM TABLE_A WHERE COLUMN IN (
SELECT * FROM TABLE_A WHERE SOME_COLUMN = 'something'
)
END TRANSACTION
ご覧のとおり、クエリには(可能であれば)置き換えたい冗長なSELECT
ステートメントがあり、効率が向上しています。DELETE
最初のクエリの行を使用してビューを作成し、次に2番目のテーブルの行を使用してビューをスキャンすることを考えていました。いくつかの条件が一致する場合は、2番目のテーブルから行を削除します。
これをどのように行うことができるかについて、いくつかの指針を得ることができますか?私がしていることが何か間違っているなら、批判してください。
Sybaseを使用しています。
ありがとう。