카테고리 없음

17. 트랜잭션 실습

sdafdq 2023. 9. 29. 15:18

참고로, 

DB 로그인을 한번 더 하면 그거는 다른 세션으로 여는 거다.

 

 

그리고 무슨 타임아웃 lock 같은 게 걸릴 수 있는데, (자동 커밋 실험하다가)

그럼 그냥 DB 연결 끊었다가 다시 실행하면 된다.

 

commit 안한상태로 primary key인걸 똑같이 insert 하려고 했더니 그렇게 됨(다른 세션에서 insert 하려고 해도 그럼.)

 

 

 

 

세션 1이 신규 데이터 추가 후 커밋 전.

아직 세션2는 확인할 수 없음.

 

 

 

세션 1이 commit 후

DB에 임시로 등록되었던 데이터가 제대로 완전히 등록됨.

이제 세션2도 볼 수 있음.

 

commit 해서 등록되기 전까지 자기 세션에서만 나타남

 

 

어떤 느낌이냐면, 

한줄 읽고 데이터 반영하는 것은 같지만, (그래서 1번 줄 성공하고 2번 줄 실패하면 1번줄은 임시로 반영됨)

그건 임시로만 반영된 상태고, 실제 DB에 쓰여진 것은 아니다.

 

한줄 안에 해야 할 것은 그냥 autocommit 모드로 하면 되고,

둘 이상의 쿼리가 실행되어야 할 때는 수동커밋모드로 하면 될 듯.