2014-08-29 3 views
0

내 애플리케이션의 경우 로컬 SQLite 데이터베이스를 외부 애플리케이션과 동기화하는 방법을 개발 중입니다. 이 작업을 수행하기 위해 알아 두어야 할 알고리즘은 트랜잭션 중에 데이터베이스에 읽고 쓸 수있는 기능에 의존합니다. 이것은 내가 작업하고있는 데이터베이스가 커밋 이전에 항상 데이터베이스의 최신 상태를 반영 할 것을 요구합니다. 예를 들어 다음 표가 있다고 가정 해보십시오.안드로이드에서 SQLite 트랜잭션을 읽고 쓰는 중

id | value 
-------------- 
1 | a 
2 | b 
3 | c 
4 | d 

트랜잭션을 시작하고 두 번째 행을 삭제하십시오. 데이터베이스가 다음과 같이 표시됩니다.

id | value 
-------------- 
1 | a 
3 | c 
4 | d 

그런 다음 데이터베이스에 모든 행을 다시 쿼리합니다.

id | value 
-------------- 
1 | a 
3 | c 
4 | d 

그러나 트랜잭션이 커밋되지 않았으므로 원래 테이블처럼 보일까요? 트랜잭션 중 SQLite의 동작에 대해 완전히 명확하지는 않습니다. 특히 설명서에서 이에 대한 내용이 구체적으로 표시되지 않습니다. 나는 내 질문에 내가 분명했으면 좋겠다. 질문이 있으시면 언제든지 문의하십시오.

답변

1

서로 다른 트랜잭션이 서로 격리되어 있지만 트랜잭션은 자체와 격리되지 않습니다. 즉, 트랜잭션은 항상 고유 한 변경 사항을 보게됩니다.

+0

Perfect. 고맙습니다. –

관련 문제