2009-08-25 7 views
2

32 비트 x86 데비안에서 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!!! 

아마 관련, 나는 행 심지어 롤백 후 남아있는 것으로 나타났습니다!

내 질문에 자동 커밋이 실제로 비활성화되어 있지 않으므로 트랜잭션 격리 수준이 효과적으로 무시됩니다.

Ciao, Sheldon.

답변

4

테이블은 기본적으로 MyISAM에 생성 된 것으로 보입니다.

트랜잭션을 지원하지 않습니다.

당신은 실행 시겠어요 다음 질문에 대한

SELECT @@storage_engine 
+0

가장 가능성있는 설명처럼 보입니다. – MarkR

0

미안하지만, 당신이 usign InnoDB의 테이블입니다 확신? 기본 스토리지 엔진을 확인해야합니다.

관련 문제