3

私はpythonでsqlite3バインディングで遊んでいますが、かなり新しいです。私のプログラムが実行されると:

cursor.execute('INSERT OR IGNORE INTO UpdateTypes (name) VALUES (?), (?), (?), (?), (?)',
    ('battery', 'missing', 'rssi', 'hear', 'status'))

私は以下を取得します:

sqlite3.OperationalError: near ",": syntax error

テストするために、私はsqlite3自分のプレイデータベースを開き、実行できたので、これは私を混乱させます:

INSERT OR IGNORE INTO UpdateTypes (name) VALUES ('battery'), ('missing'), ('rssi'), ('hear'), ('status');

大丈夫です。

だから私はこれを理解する必要があり、私がやったことのどこが悪いのかに対する答えは大歓迎です。

しかし、私が本当に興味を持っているのは、何が問題なのかについてより詳細な情報を得る方法です。たとえば、置換エンジンを実行して、それが構築している実際のSQLが何であるかを確認するために使用できるsqlite3モジュール機能はありますか?

4

1 に答える 1

1

1 つのステートメントで複数のレコードを指定する機能はINSERT、SQLite 3.7.11 で追加されました。

コマンドsqlite3ライン ツールは十分に新しいものです。Python に含まれる SQLite のバージョンは (チェックSELECT sqlite_version();) ではありません。

于 2013-07-13T08:43:41.323 に答える