正如我从这里和这里读到的,如果事务级别是 REPEATABLE-READ,则没有其他事务可以读取该事务正在访问的数据。但是我在测试时发现了这一点。(MySQL 服务器版本:5.0.21-community-nt /innodb 引擎)。
交易A:
mysql> SELECT @@tx_isolation;
+-----------------+
| @@tx_isolation |
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set (0.00 sec)
mysql> SET autocommit = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> UPDATE manufacturer
-> SET lead_time = 22
-> WHERE mcode = 'ACL';
Query OK, 1 rows affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
交易 B
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM Manufacturer ;
+-------+------------+-----------+
| mcode | mname | lead_time |
+-------+------------+-----------+
| ACL | ACL Cables | 2 |
| HAY | Haycarb | 4 |
| HYL | Hayleys | 5 |
+-------+------------+-----------+
3 rows in set (0.00 sec)
事情是我希望事务 B 等到事务 A 提交但它没有发生。有人可以告诉我如何应用它以及它是如何工作的* (我可能做错了) *。