我正在VB.Net中编写一个应用程序,它通过MySQL ODBC 3.51驱动程序工作,数据存储在MySQL数据库中。尝试模拟并发访问,我打开了MySQL Workbench和我的应用程序。
在Workbench中我锁定了一些记录:
begin;
select * from tbltest where test like 'test%' for update;
在我的应用程序中,我查询MySQL数据库:
SELECT COUNT(*) FROM information_schema.innodb_trx;
由于存在活动交易,我正确地回到'1'。
我在Workbench中回滚事务并以相反的方式尝试相同的操作。这次我在我的应用程序中启动事务,具有完全相同的SQL代码:
begin;
select * from tbltest where test like 'test%' for update;
但是当我在Workbench中查询 information_schema.innodb_trx 时,我回到'0':Workbench找不到活动的事务。
当我将代码更改为以下内容时,Workbench以及我的应用程序正确地找到了一个活动的事务:
begin;
select * from tbltest for update;
在第一种情况下,我的VB.Net应用程序找不到交易,而在第二种情况下,它怎么做呢? MySQL ODBC驱动程序会出现更普遍的问题吗?
谢谢!