如何使用没有rowid的python在SQLite中创建表?

时间:2014-04-02 20:25:24

标签: python database sqlite rowid

我想在python中创建一个没有默认rowid字段的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

有什么建议吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

您可能需要更新版本的SQLite。 without rowid语法需要3.8.2或更高版本。

Reference

链接到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'

有关版本检查如何误导您的信息,请参阅this SO answer