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()でデータベース接続を閉じます。
このコードを実行すると、指定したテーブルが存在するかどうかを確認できます。