존재하지 않는 경우에만 SQLite 데이터베이스에 테이블을 만들고 싶습니다. 이것을 할 수있는 방법이 있습니까? 테이블이 있으면 삭제하지 않고 테이블이 없으면 작성하십시오.
답변
에서 http://www.sqlite.org/lang_createtable.html :
CREATE TABLE IF NOT EXISTS some_table (id INTEGER PRIMARY KEY AUTOINCREMENT, ...);
답변
이 아주 좋은 질문에 가치를 더하고 @David Wolever의 환상적인 답변 아래의 의견 중 하나에서 @BrittonKerin의 질문을 바탕으로 노력할 것입니다. @BrittonKerin과 같은 도전을 받았기 때문에 여기에서 공유하고 싶었고 무언가가 작동했습니다 (즉, 테이블이 존재하지 않는 경우에만 코드 조각을 실행하고 싶습니다).
# for completeness lets do the routine thing of connections and cursors
conn = sqlite3.connect(db_file, timeout=1000)
cursor = conn.cursor()
# get the count of tables with the name
tablename = 'KABOOM'
cursor.execute("SELECT count(name) FROM sqlite_master WHERE type='table' AND name=? ", (tablename, ))
print(cursor.fetchone()) # this SHOULD BE in a tuple containing count(name) integer.
# check if the db has existing table named KABOOM
# if the count is 1, then table exists
if cursor.fetchone()[0] ==1 :
print('Table exists. I can do my custom stuff here now.... ')
pass
else:
# then table doesn't exist.
custRET = myCustFunc(foo,bar) # replace this with your custom logic