我正在vb.net中编写一个应用程序,它通过mysql odbc3.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中查询信息\u schema.innodb \u trx时,返回“0”:workbench没有找到活动事务。
但是,当我将代码更改为以下内容时,workbench和我的应用程序会正确地找到一个活动事务:
begin;
select * from tbltest for update;
为什么在第一种情况下,我的vb.net应用程序找不到事务,而在第二种情况下却找到了事务?mysql odbc驱动程序会有更普遍的问题吗?
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!