作者you7 (you)
看板Database
標題[SQL ] 因為時間差造成的資料重複匯入
時間Mon Mar 24 15:05:19 2014
資料庫名稱:mysql
內容/問題描述:
我的資料表有三欄 四筆資料
a b c
1 3.1 .....
2 3.1 .....
3 3.1 .....
4 3.1 .....
a是流水號;b是日期(月.日);c是資料
我在php寫一個簡單的判斷式
------------------------------------------
if (現在日期!=資料庫b欄日期) {
清空資料表;
重新匯入資料;
}
for i=1;i<5;i++
echo c[i]; //匯出c欄資料
------------------------------------------
我的問題是,匯入資料需要10至15秒左右。
這段期間,重新整理網頁,或是有多人瀏覽這個網頁。
資料表就會被重複匯入,流水號的順序就會1,2,3,1,4,2,3,4
雖然for迴圈,遇到a兩筆重複資料只會echo一筆,
網頁上看不出來重複匯入的問題,除了資料表亂了些外,沒有什麼大礙。
我想破頭,還是想不出阻止重複匯入的機制。
有人可以提供一些點子嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.232.150.161
1F:推 TeemingVoid:批次匯入前,先lock table 資料表 write,完成後, 03/25 11:16
2F:→ TeemingVoid:unlock tables 另一個方式,叫用 get_lock() 與 03/25 11:16
3F:→ TeemingVoid:release_lock() 自行設計交通號誌。 03/25 11:16
4F:推 jonce007:php開檔案,做完刪除。要執先行若檔案存在則不執行 03/27 18:59
5F:→ jonce007:^^^^^^^^^^^^^^^^^^^^^^^^^前 03/27 19:00
6F:→ f1234518456:寫入一個鎖定值到Application中 用來判斷是否在寫入中 03/31 10:23