淺析MYSQL REPEATABLE-READ隔離級別。本站提示廣大學習愛好者:(淺析MYSQL REPEATABLE-READ隔離級別)文章只能為提供參考,不一定能成為您想要的結果。以下是淺析MYSQL REPEATABLE-READ隔離級別正文
REPEATABLE-READ 便可反復讀,set autocommit= 0或許START TRANSACTION狀況下select表的內容不會轉變。這類隔離級別能夠招致讀到的器械是曾經修正過的。
好比:
回話一中讀取一個字段一行a=1
在回話二裡這個字段該行修正a=0,而且提交
回話一中再update這個字段a=0,會發明受影響行數是0,如許便可以依據受影響行數是0照樣1斷定此次修正能否勝利!
這在某些法式裡會很有效!
會話1:
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test.dd where id=1;
+----+------+
| id | aa |
+----+------+
| 1 | 2 |
+----+------+
1 row in set (0.00 sec)
會話2:
mysql> update test.dd set aa=1 where id=1;
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0
會話3:
mysql> select * from test.dd where id=1;
+----+------+
| id | aa |
+----+------+
| 1 | 2 |
+----+------+
1 row in set (0.00 sec)
mysql> update test.dd set aa=1 where id=1;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
此處的受影響行數為0,我們可以依據這個值斷定此次update能否勝利,這在須要更改某些行的狀況位的時刻是比擬有效的!