我正在使用 SQLite3 创建数据库。我的python版本是2.7.5。
在创建数据库之前,我只是创建了示例数据库并测试了它是否能正常工作。id
即使我将它声明为一种serial
类型,它也没有增加。
我创建了简单的数据库:
import sqlite3
con = sqlite3.connect('sample.db')
cur = con.cursor()
cur.execute("""CREATE TABLE sample(id serial,test real)""")
cur.execute("""INSERT INTO sample(test) VALUES(?)""",(3,))
cur.execute("""INSERT INTO sample(test) VALUES(?)""",(6,))
cur.execute("""INSERT INTO sample(test) VALUES(?)""",(8,))
con.commit()
然后我获取了所有数据:
data = cur.execute("""SELECT * from sample""")
t = data.fetchall()
In [33]: t
Out[33]: [(None, 3.0), (None, 6.0), (None, 8.0)]
我预料到了这一点:Out[33]: [(1, 3.0), (2, 6.0), (3, 8.0)]
但是,正如您所看到的,所有id
元素都是None
我怎么解决这个问题 ?我知道我可以通过增加一个变量并插入它来做到这一点。像这样:
id += 1
cur.execute("""CREATE TABLE sample(id serial,test real)""")
id += 1
cur.execute("""INSERT INTO sample(test) VALUES(?)""",(3,))
id += 1
cur.execute("""INSERT INTO sample(test) VALUES(?)""",(6,))
然而,这不是很可怕吗?我不想这样做。我想让我的代码清晰而智能。