rollback 2

커밋과 롤백, DATE 형 칼럼에 값 insert 하기. 2021-07-23

지난 포스트에서 내가 관련 개념을 설명할 때는, 직접 SQL developer에서 프로그래밍 해 보지는 않았는데, 오늘 직접 해보니, 막연한 개념을 확실히 확인할 수 있었다. **커밋,롤백, 트랜젝션에 대한 자세한 설명은 내 이전포스트 참고바람. 우선 서로다른 세션이 한 저장소에 접근하는것을 보이기 위해 SQL developer를 두번 열었다. 이렇게 연 다음, Session2에서 ID 가 newlec인 레코드의 칼럼을 update 한 뒤 Session1에서 해당 레코드의 칼럼중 하나인 gender에 접근하여 바꾸려 하자 보이는 것처럼 바로 ROCK이 걸렸다. 이유는 Session2가 아직 commit 하지 않았으므로, 해당 레코드에 관한 트랜젝션이 완료되지 않았다고 간주하고, 해당 테이블이 Sessio..

Programming/SQL 2021.07.23

트랜젝션(transaction), commit, rollback 2021-06-21

오라클에서 한 세션에서 INSERT 한 데이터가 왜 다른 세션으로 접속했을때, 반영이 되지 않는 것일까? 이 질문에 답을 하기 위해선, 트랜젝션이 무엇인지 알아야한다. 내가 오늘 공부하며 내린 결론은 트랜잭션이란 DB의 변화를 가져오는 일련의 "명령어들"의 단위집합 이다. 좀더 쉽게 풀어쓰면, 한 업무의 수행단위 라 볼수 있다. 자세히 설명하자면, 계좌이체 라는 과정을 수행하려 했을때, 한 계좌에서 돈을 UPDATE를 통해 빼주고, 다른 계좌에서 UPDATE를 통해 돈을 더해줘야만, "계좌이체"라는 하나의 업무단위(트랜잭션)가 완성되는 것이다. 즉, UPDATE/INSERT/DELETE 각각의 명령어 한개가 수행되었다고 해서 트랜젝션이 완료되는 것이 아니라(물론 하나의 명령어로 완료되는 트랜잭션이 있을수..

Programming/SQL 2021.06.21