■19990 / inTopicNo.4) |
Re[1]: SQL 値の変更 |
□投稿者/ らすかる17 (1回)-(2008/06/03(Tue) 16:30:54)
|
■No19956 (みちる さん) に返信 > SQLについてご質問させてください。 > > 二つのテーブルがあり、 > どちらも主キーがあります。 > Aテーブルは1万件のデータがあります。 > Bテーブルは空状態です。 > Bにデータを追加してAテーブルのキーに無ければinsertあればupdateとしたいですが > 件数が多い為キーがあるかどうか探すので時間が掛かってしまいそうな感があります。
一件ずつ処理したいのであれば、 > oracle9i以降なら、 MERGE = UPDATE + INSERT があります。 > http://www.shift-the-oracle.com/sql/merge.html もしくは、ストアドで存在確認付きの処理を作成する。 全件一括でいいのであれば、 Bに追加した後、 UPDATE A SET 項目1 = B.項目1, 項目2 = B.項目2 FROM A INNER JOIN B ON A.キー = B.キー INSERT A SELECT B.キー, B.項目1, B.項目2 FROM B WHERE NOT EXISTS (SELECT * FROM A WHERE A.キー = B.キー) みたいな感じかなぁ・・・ ご参考までに・・・
|
|