본문 바로가기
컴퓨터관련/Python

[python]파이썬 insert/update하고 commit/rollback 하기

by 빛과 어둠사이 2019. 9. 6.
728x90
반응형
SMALL

지난번에 python에서

MSSQL 에 접속하여

SELECT 하는 방법에 대해

정리를 해 보았습니다.


SELECT를 하였으면,

INSERT, UPDATE, DELETE 등도

당연히 따라올 수 있습니다.


그래서 이번에는 INSERT/UPDATE 등을 하는 방법을

정리해보고자 합니다.


소스는 지난번 SELECT 했던 것을

기반으로 진행하였습니다.



우선 INSERT를 해보도록 하겠습니다.

기본 소스는 그대로 쓰고

INSERT 하는 부분만 추가를 하였기 때문에

해당 부분만 소스는 적도록 하겠습니다.


소스는 다음과 같습니다.

cursor.execute("insert into test_member values ('iii', '원빈') ")

위와 같이 소스를 적용하였습니다.

전체 소스는 다음과 같습니다.



위처럼 작성하여 실행을 해보았습니다.

그랬더니 결과는 아래처럼 나왔습니다.



원래 없던 원빈이

나와지는 것을 볼 수 있습니다.


그래서 SSMS에서 조회를 해 보았습니다.



그랬더니 하늬까지 밖에 없고

원빈이 나오지 않았습니다.


제가 찾아보니깐

파이썬은 기본적으로는 오토커밋을 제공 안한다고 하네요.

뭐 설정이나 다른 방법을 통해

AUTO COMMIT를 하게 할 수 있긴 하더라고요.

그것도 나중에 정리해볼께요.


아무튼 저는 이런 오토커밋이 없는게 좋아요.

그래야 문제가 생기면 롤백을 할 수도 있으니깐요.




그래서 이번에는 COMMIT를 포함하여

다시 소스를 작성해 보았습니다.

소스는 아래처럼 작성하였습니다.

cursor.execute("insert into test_member values ('iii', '원빈') ")
conn.commit()

위처럼 작성하여

전체 소스는 다음과 같습니다.



그래서 실행하였더니

다음과 같은 결과가 나왔습니다.



이 때의 결과는

아까 COMMIT이 없을 때와 동일하네요.


그럼 이제 SSMS에서 

조회를 해 보아야죠.

SSMS에서 다시 SELECT를 해 보았습니다.


이번에는 원빈이 있는 것이

보여지네요.

COMMIT를 하여

DB에 반영이 된 것입니다.

그러니 AUTO COMMIT를 설정 안했다면

반드시 COMMIT를 해 주어야 합니다.




그럼 이번에는 UPDATE를 해보도록 하겠습니다.

INSERT나 거의 동일합니다.

쿼리문만 UPDATE로 변경된 것입니다.

소스는 다음과 같습니다.

cursor.execute("update test_member set member_name = '현빈' where id = 'iii' ")
conn.commit()

UPDATE문을 작성하고

COMMIT를 넣었습니다.


전체 소스는 다음과 같습니다.



위처럼 작성을 하였습니다.

그래서 실행을 하여

아래처럼 결과가 나왔습니다.



원빈에서 현빈으로 바뀐 것을

확인할 수 있었습니다.


그러면 이제 SSMS에서

확인을 해보도록 하겠습니다.

SSMS에서 다시 SELECT를 해 보았습니다.

결과는 다음과 같습니다.



위처럼 현빈으로 바뀐 것을 확인할 수 있었습니다.



그러면 이제 커밋이 아닌

롤백을 하는 방법도

정리를 해보고자 합니다.

ROLLBACK를 하는 것도 간단합니다.

COMMIT처럼 ROLLBACK함수를

실행시키면 됩니다.


소스는 다음과 같습니다.

cursor.execute("update test_member set member_name = '원빈' where id = 'iii' ")
conn.rollback()

위처럼 작성을 하였습니다.

전체 소스는 다음과 같습니다.



위처럼 ROLLBACK를 하도록 하였고

실행을 하였습니다.

그랬더니 결과는 아래처럼 나왔습니다.



현빈에서 바뀌지 않은 것을

확인할 수 있습니다.


그러면 SSMS에서 다시 조회를 해보았습니다.



위처럼 SSMS에서도 변경이 안된 것을

확인할 수 있었습니다.




이렇게 INSERT/UPDATE를 하고

COMMIT 및 ROLLBACK를 

필요에 따라서 잘 쓰시면서

개발을 하면 좋을 것 같습니다.



이상으로 파이썬에서 INSERT/UDPATE 하고

커밋 및 롤백하는 방법이였습니다~



728x90
반응형
LIST