| 发表于:2007-11-06 11:21:296楼 得分:40 |
估计是服务器端在查到纪录后正在标记的同时,其他的客户端也请求了这条记录。 ---------------------------------------------------- 這個問題是可以解決的,可以確保不會被同時更新. update tablename set imgdir='新路徑',標志=已操作 where id=id and imgdir='舊路徑' 如你所述,每次更新都是更新圖片的存儲路徑. 假設兩個客戶端同時取服務器數據,而且很不巧剛好取的是同一條記錄(假設id為5,imgdir為c:\a.jpg),客戶端a要將這條記錄的路徑更新為d:\a.jpg,客戶端b要更新為e:\a.jpg.由於數據庫的鎖機制可以確保同時衹有一個連接來更新同一記錄,因此必然有一個客戶端先成功更新,再執行第二個更新,仔細看上的sql語句會發現,第二個更新是不會成功的,因為where語句中imgdir已經改變了,不滿足條件了. | | |
|