0

デフォルトのrowidフィールドなしでpythonでSQLiteテーブルを作成したいと思います。

たとえば、私は試しました

import sqlite3

conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()

sql = "CREATE TABLE tblTest (myid VARCHAR(20) PRIMARY KEY, testField1 VARCHAR(14), testField2 VARCHAR(2500) ) WITHOUT ROWID "

cursor.execute(sql)

そして、これは私が得るエラーです:

sqlite3.OperationalError: near "WITHOUT": syntax error

助言がありますか?前もって感謝します。

4

1 に答える 1

3

おそらく、新しいバージョンの SQLite が必要です。構文にはwithout rowid3.8.2 以降が必要です。

参照

sqlite3 実行可能ファイルにリンクされている sqlite ライブラリのバージョン。. .

$ sqlite3 --version
3.7.9 2011-11-01 00:52:41 c7c6050ef060877ebe77b41d959e9df13f8c9b5e

Python の標準ライブラリに組み込まれているバージョン。. .

$ python
[snip]
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.7.9'

バージョン チェックがどのように誤解を招く可能性があるかについては、この SO answerを参照してください。

于 2014-04-02T20:31:38.213 に答える