怎樣可以實現條件性插入或更新? |
答題得分者是:st33chen
|
KFC123_60201
一般會員 發表:58 回覆:18 積分:15 註冊:2006-07-25 發送簡訊給我 |
|||||||
shinhrn
中階會員 發表:54 回覆:165 積分:83 註冊:2002-06-05 發送簡訊給我 |
|||||||
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
想到四個方法, 但沒測試過, 不知效率如何
1. 用 原table 的 filter 來測試是否已存在某 key 值的資料. 讀入 csv 一筆, 設 talbe 的 filterstring 為該key 再設 filter 為 on, 檢查 table 的筆數, 若 0 新增 否則 更新. 2. 先 update, 查看 RowsAffected 若 0 則 insert. 3. 如果 database engine 可傳回(新增已存在key) 或 (更新未存在key) 的錯誤, 可以用 try update except insert end; 或 try insert except update end; 的結構來做, 4. 整批做法 將 csv 轉入一個 暫時 table (ex.tmptable) 再將 tmptable 中 key 值不存在於 table 的資料 insert 到 table: insert into table (fld1, fld2, ...) select distinct fld1, fld2, ... from tmptable where keyfld not in (select keyfld from table); 再由 tmptable 中 key 值 已存在於 table 的資料 update 到 table : 請參考:
或 from titles, sales WHERE titles.title_id = sales.title_id
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2008-07-20 09:32:07, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |