看板 Database 關於我們 聯絡資訊
※ 引述《kazumi6533 (patrick)》之銘言: : 請問一下 : 如果我有一筆資料要insert,但是不知道是不是會有重覆 : 如果重覆的話就用update,那我應該怎麼做 : 是不是只能先select一個recordset,然後檢查recordset裡面是不是有該筆 : 然後再決定要不要insert或update? : 如果是這樣我應該怎麼做比較好,因為我資料很多,大概一百萬筆左右 : 如果每一筆都這樣檢查是不是會變得很慢...orz.. : 謝謝 若是 Oracle,可以用 MERGE 指令,簡單又迅速。早一點的版本是叫作 UPSERT, 基本上就是 update 加 insert,也可以再加上 delete。 範例: MERGE INTO bonuses D USING (SELECT employee_id, salary, department_id FROM employees WHERE department_id = 80) S ON (D.employee_id = S.employee_id) WHEN MATCHED THEN UPDATE SET D.bonus = D.bonus + S.salary*.01 DELETE WHERE (S.salary > 8000) WHEN NOT MATCHED THEN INSERT (D.employee_id, D.bonus) VALUES (S.employee_id, S.salary*.01) WHERE (S.salary <= 8000); 這個例子是給薪水小於八千的員工,每人薪水的百分之一當做 bonus。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 64.9.235.13