《MYSQL數據庫淺析MYSQL REPEATABLE-READ隔離級別》要點:
本文介紹了MYSQL數據庫淺析MYSQL REPEATABLE-READ隔離級別,希望對您有用。如果有疑問,可以聯系我們。
MYSQL數據庫REPEATABLE-READ 即可重復讀,set autocommit= 0或者START TRANSACTION狀態下select表的內容不會改變.這種隔離級別可能導致讀到的東西是已經修改過的.
MYSQL數據庫比如:
MYSQL數據庫回話一中讀取一個字段一行a=1
MYSQL數據庫在回話二里這個字段該行修改a=0,并且提交
MYSQL數據庫回話一中再update這個字段a=0,會發現受影響行數是0,這樣就可以根據受影響行數是0還是1判斷此次修改是否成功!
MYSQL數據庫這在某些程序里會很有用!
MYSQL數據庫會話1:
MYSQL數據庫mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
MYSQL數據庫mysql> select * from test.dd where id=1;
+----+------+
| id | aa |
+----+------+
| 1 | 2 |
+----+------+
1 row in set (0.00 sec)
MYSQL數據庫會話2:
MYSQL數據庫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
MYSQL數據庫會話3:
MYSQL數據庫mysql> select * from test.dd where id=1;
+----+------+
| id | aa |
+----+------+
| 1 | 2 |
+----+------+
1 row in set (0.00 sec)
MYSQL數據庫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
MYSQL數據庫此處的受影響行數為0,我們可以根據這個值判斷這次update是否成功,這在需要更改某些行的狀態位的時候是比較有用的!