タイトルどおり指定のテーブルが存在しない時に作成して存在する時は何もしないという処理メモ
ソースコード
def create_table(conn, cur): #テーブルを作成 def getdb(dbname): # return (connection, cursor) def table_isexist(conn, cur): cur.execute(""" SELECT COUNT(*) FROM sqlite_master WHERE TYPE='table' AND name='<テーブル名>' """) if cur.fetchone()[0] == 0: return False return True dbname = 'hoge.db' (conn, cur) = getdb(dbname) if table_isexist(conn, cur) == False: create_table(conn, cur)
cur.fetchone( )でrowオブジェクトを取得します。これはタプルによく似た機能をもつオブジェクトで(公式によるとタプルとは異なる)、SELECT COUNTでカウントした場合はその個数をrow[0]に格納します。
2017/12/6追記
こんなことしなくてもテーブル作成時に
CREATE TABLE IF NOT EXISTS tablename(...)
とすればテーブルが存在しているかチェックして、存在していなければ作成してくれるそうです。
まだまだ情弱ですね・・・。修行しないと。