我正在使用SQLite3創建數據庫。 和我的python版本是2.7.5。SQLite3串行類型未增加
在創建數據庫之前,我只是簡單地創建了示例數據庫並測試它是否會正常工作。 並且它失敗了,即使我 聲明它爲serial
類型,id
也不會增加。
我創建簡單的數據庫:
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,))
然而,這不是很糟嗎?我不想這樣做。 我想讓我的代碼清晰明瞭。
你從哪裏得到「串行」類型*? SQLite中沒有這樣的關鍵字。 –
真的嗎?我在互聯網上也發現了它! 嗯,那麼有什麼替代品可以做到我想要的嗎? – SamuraiT