如何在Python中创建没有rowid的SQLite表?
我想在Python中创建一个SQLite表,但不想要默认的rowid字段。
比如,我试过这样做:
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
有没有什么建议?提前谢谢你们。
1 个回答
3
你可能需要更新你的SQLite版本。使用without rowid
这个语法需要3.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'
关于版本检查可能会误导你的信息,可以查看这个StackOverflow的回答。