MySQL事务隔离级别坏了吗?

时间:2009-08-25 14:27:20

标签: mysql transactions isolation

我似乎无法在32位x86 Debian上获得MySQL 5.0.32以兑现事务隔离级别。

我已将问题简化为最简单的形式,并使用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并没有真正禁用,因此事务隔离级别被有效忽略了吗?

侨, 谢尔顿。

2 个答案:

答案 0 :(得分:5)

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

它不支持交易。

请你运行以下内容:

SELECT @@storage_engine

答案 1 :(得分:0)

很抱歉问题,但你确定你使用的是innodb表吗?您必须检查默认存储引擎。