如何在Python中创建没有rowid的SQLite表?

0 投票
1 回答
1994 浏览
提问于 2025-04-18 01:04

我想在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的回答

撰写回答