curs= conn.cursor()
try :
insert_std = """
insert into stdtbl values ('강호동','경북'),('김제동','경남'),('김용만','서울'),
('이휘재','경기'),('박수홍','서울');
"""
insert_club = """
insert into clubtbl values ('수영','101호'),('바둑','102호'),('축구','103호'),
('봉사','104호');
"""
insert_stdclub = """
insert into stdclubtbl values (null, '강호동','바둑'),(null, '강호동','축구'),
(null, '김용만','축구'),(null, '이휘재','축구'),(null, '이휘재','봉사'),
(null, '박수홍','봉사');
"""
curs.execute(insert_std)
curs.execute(insert_club)
curs.execute(insert_stdclub)
conn.commit()
curs.close()
except Exception :
import traceback
traceback.print_exc()
curs.close()
처음 커넥션을 연결하고 쿼리문들 실행하는 curs.execute나 commit에서 에러가나면
거기서 멈춰버린다.
떄문에 마지막에 curs.close()가 실행이 안되서
코드가 다 꼬여버림..
내 컴퓨터에선 그냥 vs코드나 db브라우저 껐다 키면 되겠지만
만약 이게 웹상에서 배포가 되어서 쓰이고 있는 상태면 엄청 큰 문제다..
그래서 쿼리문 수행할때마다 try, except로 에러처리로 해주고
except에서 curs.close()를 해주면 커넥션이 끊어진다.
에러 처리하고 다시 실행해도 database lock이 안뜨게됨
'database > etc' 카테고리의 다른 글
maria db /cli (0) | 2023.09.26 |
---|