sqlite3.connectでファイル名を指定すると、存在しない場合でも新規作成し開くことができます。既存のファイルを指定した場合、そのあとのコードででテーブルを作成しますが、既に存在するテーブルに対してSQL文CREATE TABLEを発行するとエラーが発生します。
このコードでは、table_isexist()という関数を準備し、事前にテーブルが存在するかチェックしています。
import sqlite3
#ファイルが存在しない場合は自動的に作成される
dbFilePath = "D:\\etc\\sqlite-sample.db"
conn = sqlite3.connect(dbFilePath)
cur = conn.cursor()
tb_name = "addressTable"
if table_isexist(conn, cur, tb_name) == False :
sql = "CREATE TABLE " + tb_name + "(zipcode TEXT, address TEXT, name TEXT)"
cur.execute(sql)
conn.commit()
conn.close()
#DBの中にテーブルが存在するか確認する。
def table_isexist(conn, cur, tablename):
cur.execute('SELECT COUNT(*) FROM sqlite_master '
'WHERE TYPE="table" AND name= "' + tablename + '"')
if cur.fetchone()[0] == 0 :
return False
return True
コメント