sqlite3 sql 문을 파이썬에 한번만 실행하려면 어떻게 해야할까요?


예로

conn = sqlite3.connect("test.db")
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS TESTTABLE(ID INTEGER PRIMARY KEY AUTOINCREMENT, 
NAME1 CHAR(5), NAME2 CHAR(5))')
conn.commit()

cursor.execute("INSERT INTO TESTTABLE(ID,NAME1,NAME2) VALUES(NULL,'홍길동','김갑환')")
conn.commit()

대충 이런식으로 만들었습니다. 문제는 실행을 시킬때마다 insert문이 실행되어 값이 계속 들어갑니다. 이걸 프로그램 실행할때 딱 한번만 실행시킬려면 어떻게 해야할까요?


조회수 89


1 답변


좋아요
1
싫어요
채택취소하기

단순하게는 딱 한번만 실행하면 됩니다.(농담 아닙니다.)

싱글톤 패턴을 활용하여 한번만 호출되게 할 수 있고 패키지의 init.py를 활용해볼수도 있을 것 같습니다.

그러나 위와같은 고민이면 key를 auto increment로 하지 말고 키를 주민등록번호나 학번등의 고유한 값으로 하면 됩니다.

키가 같은 경우 예외를 처리하면 됩니다.

  • 2017년 10월 03일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close