7

sqlite3で新しい列を追加するSQLクエリをPythonで実行する必要があります。

問題は、それがすでに存在する場合があるということです。したがって、クエリを実行する前に、列がすでに存在するかどうかを確認する必要があります。

もしそうなら、私はクエリを実行しません。

sqliteにそれを行う方法はありますか?または、Pythonコードのtry-catchブロックを通過する必要がありますか?

よろしくお願いします!

4

3 に答える 3

15

次のステートメントを使用して、テーブルの列のリストを取得できます。

PRAGMA table_info('table_name');

プラグマ コマンドの詳細については、sqlite の Web サイトを参照してください。

于 2010-03-01T09:15:59.777 に答える
14

いもこれ

conn = sqlite3.connect(':memory:')
c = conn.cursor()
try:
    c.execute('ALTER TABLE mytable ADD COLUMN newcolumn;')
except:
    pass # handle the error
c.close()

特殊なケースのクエリ を作成するよりも適切な選択です。

上記のコードを AddColumn(cursor, table, column) 関数でラップして再利用できるようにすると
、コードが読みやすくなります。

于 2010-03-01T09:30:35.020 に答える