我想知道在以下假設情況下會發生什麼情況。假設兩個老師給同一個學生完全相同的課程,他們都想更新學生的,bob的成績。鮑勃現在的平均水平是60%,教師1想要通過測試來更新他的平均水平,他得到了70%,而老師2想要通過測試來更新他的平均水平,他得到了40%。2位用戶同時更新記錄
因此,在兩位教師同時打開更新按鈕的1百萬次的機會中,恰恰在同一時間恰好到達分秒,會發生什麼?它會給出一個錯誤消息,PHP或MySQL奇蹟般地排隊更新,只有第一個分數更新鮑勃的平均值,第二個用戶會得到一個錯誤?
編輯:我擔心的是第二個用戶必須在第一個用戶編輯值後獲得值,我正在考慮提取記錄,然後在php中進行計算,然後再次更新記錄,但在這種情況下我可以確保第二位用戶獲取65%而不是60%的值,這可以通過交易完成嗎?
使用交易!在MySQL世界裏,InnoDB支持完整的ACID,在這裏閱讀更多信息http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-transactions.html –
http://en.wikipedia.org/wiki/ACID – mithunsatheesh
交易在提交給它們之前排隊查詢嗎? – grasshopper