Python: SQLite3: DBファイル内に特定のテーブルが存在するかを確認
SQLite3のファイル内に、 特定のテーブルが存在するかどうかを確認するためのPythonコードは以下の通りです。
import sqlite3 def check_table_exists(db_name, table_name): # データベースに接続 conn = sqlite3.connect(db_name) cur = conn.cursor() # テーブルの存在を確認するクエリ cur.execute("SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?", (table_name,)) # 結果を取得 exists = cur.fetchone()[0] > 0 # 接続を閉じる conn.close() return exists # 使用例 db_name = 'example.db' table_name = 'users' if check_table_exists(db_name, table_name): print(f"テーブル '{table_name}' は存在します。") else: print(f"テーブル '{table_name}' は存在しません。")
コードの説明
- データベース接続:
sqlite3.connect(db_name)
で指定したデータベースに接続します。 - カーソル作成:
conn.cursor()
でデータベース操作用のカーソルを作成します。 - テーブル存在確認クエリ:
SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?
というSQL文を使用して、指定したテーブル名がsqlite_master
テーブルに存在するかを確認します。このテーブルにはすべてのテーブルのメタ情報が格納されています。 - 結果取得:
cur.fetchone()
で結果を取得し、カウントが0より大きい場合はテーブルが存在すると判断します。 - 接続終了: 最後に
conn.close()
でデータベース接続を閉じます。
このコードを実行すると、指定したテーブルが存在するかどうかを確認できます。