作者grence (多想兩分鐘 = =")
看板Database
標題Re: [SQL ] 關於UPDATE大量資料
時間Fri Jun 20 23:26:59 2008
※ 引述《slalala (WIKI大學生寫作業的題材)》之銘言:
: 現在有個需求是關於資料異動。
: 不過因為資料關聯非常複雜 因此有一些小疑問。
: 表格大概是
: 1.消費者資料 2.地址資料
: PK使用身分證 其他表格則FK到消費者資料
: 可是地址資料我分的非常細且為了維持格式一致(參考郵局表格)
: 所以縣市 區 路 街 巷 號 樓 都是一個個的欄位
: 以至於要更新的時候SQL指令會變的很複雜
: 一次更新大概需要update 20幾個欄位
....好像是常見的痛 orz
同狀況的另一個痛是顯示地址…目前都是在存的時候順便存一個兜起來的地址。
: 前端的部分不是問題 jsp+js都能克服
: 現在卡在SQL的UPDATE不確定怎麼做才是最好的
: 我有個想法是 當程式偵測到消費者資料有需要更新的時候
: 先將地址資料刪除(除了消費者資料是用UPDATE)
: 然後再新增新地址的資料
: 例如:
: 舊消費者資料 舊消費者地址 ->偵測到異動消費者資料 ->
: UPDATE 消費者TABLE ,DELETE 舊消費者地址 ,INSERT新消費者地址。
: 簡單說每次異動地址都會刪除再新增。
: 想請問一下這樣做會有缺點嗎?
: 還是真的完全不建議這麼做?
update本來就等於 delete再 insert;
真要說缺點…只想到沒有包交易,可能刪了沒新增,效率不會差太多
不過,感覺就是怪怪的 囧a
我只有匯資料才會用這種作法,省掉判斷該 insert還是 update,
一般維護程式很容易可以區分該新增還是修改…
: 如果真的不建議這樣的方式 就只能花苦功慢慢update
能解決問題的方式都好,有多種方式再來研究哪個好。
這個狀況我想不到用 delete..insert能省到什麼工?
欄位不都要一個一個 key嗎?請指教。
: 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.209.153
推 slalala:我是用JSP 自己寫一個convert的地址轉換程式 無痛XD 06/20 23:54
推 slalala:表格加起來共50多個欄位 當然DEL INSERT有省到工 06/21 00:04
推 slalala:INSERT的部份做過了 所以才想DELETE後用繼承INSERT解決XD 06/21 02:42