MySql Query Browser A事务未提交,隔离级别read committed的B事务怎么也能读到A事务未提交的修改数据?
请教大侠们指点。。(SqlYog也是如此)
代码如下:
CREATE TABLE Customer(
CustID int NOT NULL,
Fname nvarchar(20),
Lname nvarchar(20),
Address nvarchar(50),
City nvarchar(20),
State nchar(2) DEFAULT 'CA',
Zip nchar(5) NOT NULL,
Phone nchar(10)
);
insert into customer
values(1, 'Gary', 'Mckee', '111 Main', 'Palm Springs', 'CA', 94312, 7605551212);
set transaction isolation level read committed;
set autocommit=0;
begin;
update customer set state = 'fg' where CustID = 1;另一个查询窗口:
set transaction isolation level read committed;
select custID, state from customer;--能读到‘fg’

解决方案 »

  1.   

    代码如下: 
    CREATE TABLE Customer( 
    CustID int NOT NULL, 
    Fname nvarchar(20), 
    Lname nvarchar(20), 
    Address nvarchar(50), 
    City nvarchar(20), 
    State nchar(2) DEFAULT 'CA', 
    Zip nchar(5) NOT NULL, 
    Phone nchar(10) 
    ); 
    insert into customer 
    values(1, 'Gary', 'Mckee', '111 Main', 'Palm Springs', 'CA', 94312, 7605551212); 
    set global transaction isolation level read committed; 
    set autocommit=0; 
    begin; 
    update customer set state = 'fg' where CustID = 1; 另一个查询窗口: 
    set global transaction isolation level read committed; 
    select custID, state from customer;--能读到‘fg’ 
      

  2.   

    你都是使用 “MySql Query Browser” 来进行查询吧? 
    这个有可能是 “MySql Query Browser”本身问题,使用同一条Session 来连接MySQL 数据库。
      

  3.   

    谢谢楼上的两位
    如下代码在MySql Query Browser中
    set autocommit=0; 
    begin; 
    update customer set state = 'fg' where CustID = 1; 事务未提交,可在其他工具cmd,SqlYog也能查的到这条更新后的数据?
    怎么就像是自动提交了事务?
      

  4.   

    把你的代码放到MySQL Workbench里也是一个效果,难道数据库认为两个查询窗口是一个事务?