2009-08-25 107 views
2

我似乎无法获得32位x86 Debian上的MySQL 5.0.32以履行事务隔离级别。MySQL事务隔离级别破坏?

我已经减少了我的问题,以最简单的形式,与MySQL命令行客户端测试:

-- On node writer: 
-- 

DROP TABLE test; 
CREATE TABLE test (
    name VARCHAR(255) 
); 

set autocommit=0; 
set transaction isolation level read committed; 
begin; 

-- On node reader: 
-- 

set autocommit=0; 
set transaction isolation level read committed; 
begin; 

-- On node writer: 
-- 

INSERT INTO test VALUES ('bob'); 

-- On node reader: 
-- 

SELECT * from test; 
-- Returns the row with bob in it!!! 

可能与,我注意到,该行甚至回滚后仍然!

所以我的问题是,autocommit并没有真正禁用,并且事务隔离级别因此被有效忽略?

Ciao, Sheldon。

回答

4

默认情况下,您的表似乎是在MyISAM中创建的。

它不支持交易。

能否请您运行以下命令:

SELECT @@storage_engine 
+0

看起来像最可能的解释。 – MarkR 2009-08-25 20:09:05

0

对不起,我的问题,但你确定你是usign InnoDB表?你必须检查你的默认存储引擎。