[SQL ] 因為時間差造成的資料重複匯入

看板Database作者 (you)時間10年前 (2014/03/24 15:05), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
資料庫名稱: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

03/25 11:16, , 1F
批次匯入前,先lock table 資料表 write,完成後,
03/25 11:16, 1F

03/25 11:16, , 2F
unlock tables 另一個方式,叫用 get_lock() 與
03/25 11:16, 2F

03/25 11:16, , 3F
release_lock() 自行設計交通號誌。
03/25 11:16, 3F

03/27 18:59, , 4F
php開檔案,做完刪除。要執先行若檔案存在則不執行
03/27 18:59, 4F

03/27 19:00, , 5F
^^^^^^^^^^^^^^^^^^^^^^^^^前
03/27 19:00, 5F

03/31 10:23, , 6F
寫入一個鎖定值到Application中 用來判斷是否在寫入中
03/31 10:23, 6F
文章代碼(AID): #1JBzanPe (Database)