假設我有一個有兩列的表。一個被命名爲id
,這是它的主鍵。另一個叫做value
。該表格有10行,如下所示。當我選擇更新的開始和結束行時,mysql會鎖定一系列行嗎?
1 'A'
2 'B'
3 'C'
4 'D'
5 'E'
6 'F'
7 'G'
8 'H'
9 'I'
10 'J'
然後我申請這樣SELECT * FROM table WHERE id IN (1, 10) FOR UPDATE;
我想知道在這之後會發生什麼的查詢。我記得有一次,我從博客讀取它會鎖定所有10行。但我不能重複這一點。這個問題確實存在嗎?或者這只是我誤解了。
像往常一樣,簡單的手冊看看有助於:https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html而且一個建議,不要依賴博主。他們中的一些人沒有真正深入研究過的話題,只是爲了獲得一些名氣(我猜)。我在博客中經常發現錯誤或過時的信息。另一方面,該手冊很少有錯誤。 – fancyPants