試看看分開寫
INSERT INTO testb
(SELECT *
FROM testa a
WHERE NOT EXISTS (SELECT *
FROM testb b
WHERE a.KEY = b.KEY))
update testb b set ...
where exists (SELECT *
FROM testa a
WHERE a.KEY = b.KEY))
我也傾向使用slalala的方法
利用程式的exception handle機制去catch錯誤
我的做法是把insert寫成一個function
call insert時發生pk重復則刪除該筆, 然後再call一次insert
這樣好處是只要寫一次insert statment, 不用另外寫update
※ 引述《kazumi6533 (patrick)》之銘言:
: 請問一下
: 如果我有一筆資料要insert,但是不知道是不是會有重覆
: 如果重覆的話就用update,那我應該怎麼做
: 是不是只能先select一個recordset,然後檢查recordset裡面是不是有該筆
: 然後再決定要不要insert或update?
: 如果是這樣我應該怎麼做比較好,因為我資料很多,大概一百萬筆左右
: 如果每一筆都這樣檢查是不是會變得很慢...orz..
: 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.243.151.204
※ 編輯: gargamel 來自: 210.243.151.204 (11/15 16:17)