MySQL事务隔离级别破坏?
问题描述:
我似乎无法获得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。
答
默认情况下,您的表似乎是在MyISAM
中创建的。
它不支持交易。
能否请您运行以下命令:
SELECT @@storage_engine
答
对不起,我的问题,但你确定你是usign InnoDB表?你必须检查你的默认存储引擎。
看起来像最可能的解释。 – MarkR 2009-08-25 20:09:05