Re:프로그램에서 변경한 데이터를 querybox로 조회하면 갱신이 안되어있습니다.

MySQL
작성자
qbteam
작성일
2020-07-08 15:07
조회
207
안녕하세요. dluppy님.
QueryBox 관리자입니다.

문의하신 내용을 다시 정리해 보겠습니다.

1) 웹프로그램에서 Table1의 Name을 '홍길동' 에서 'David'로 변경함.
2) QueryBox에서 Table1을 조회하면 '홍길동'으로 표시됨.
3) QueryBox에서 DB 재접속을 하고, Table1을 조회하면 'David'로 표시됨.

QueryBox는 쿼리편집기에서 SELECT가 실행되면, DB에서 데이터를 Fetch하여 바로 화면에 출력합니다.

그런데, 문의하신 바와같이 이전 결과가 그대로 나온다는 것은,
DB의 Isolation Level과 트랜잭션이 관련된 문제가 아닌가 생각됩니다.

다음을 확인하시기 바랍니다.
  • DB의 Isolation Level이 REPEATABLE-READ 임. (innodb 기본값입니다)
    • (확인쿼리) SHOW VARIABLES WHERE VARIABLE_NAME = 'tx_isolation';
  • QueryBox의 AutoCommit이 On으로 되어 있음. (QueryBox 기본값입니다)
    • 만약, QueryBox의 AutoCommit이 Off로 되어있다면, On으로 변경하시기 바랍니다. (QueryBox 상태바 왼쪽에 있음)
Isolation Level 이  REPEATABLE-READ 인 상태에서, 내 세션의 트랜잭션 동안 발생한  타 세션의 DML 결과는 조회되지 않습니다.
작업하던 내 트랜잭션이 종료되고 SELECT가 수행되어야 변경된 데이터를 조회할 수 있습니다.

트랜잭션이 종료되는 경우는 다음과 같습니다.
  1. QueryBox에서 AutoCommit을 On로 설정하고 쿼리를 실행한 경우,
  2. 쿼리 실행 후 Commit, Rollback를 명시적으로 수행된 경우 (AutoCommit이 Off인 경우)
  3. 세션을 다시 시작한 경우
감사합니다.
전체 0