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

조회수 1887회

예로

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문이 실행되어 값이 계속 들어갑니다. 이걸 프로그램 실행할때 딱 한번만 실행시킬려면 어떻게 해야할까요?

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

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

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

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

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)