我一直在尝试下面的代码:
import sqlite3
data_person_name = [('Michael', 'Fox'),
('Adam', 'Miller'),
('Andrew', 'Peck'),
('James', 'Shroyer'),
('Eric', 'Burger')]
con = sqlite3.connect(":memory:")
c = con.cursor()
c.execute('''CREATE TABLE q1_person_name
(name_id integer auto_increment primary key,
first_name varchar(20) NOT NULL,
last_name varchar(20) NOT NULL)''')
c.executemany('INSERT INTO q1_person_name VALUES (?,?,?)', data_person_name)
for row in c.execute('SELECT * FROM q1_person_name'):
print row
有人能帮我使name_id
自动递增吗?
4条答案
按热度按时间dnph8jn41#
在SQLite中,
INTEGER PRIMARY KEY
列是自动递增的。还有一个AUTOINCREMENT
关键字。当在INTEGER PRIMARY KEY AUTOINCREMENT
中使用时,ID创建的算法略有不同。此代码现在工作正常。
当使用自动递增时,我们必须显式地声明列名,忽略自动递增的列名。
这是代码示例的输出。
waxmsbnn2#
看起来您已经做过了。所以插入时不需要引用该字段。
muk1a3rh3#
将
executemany
语句中的第一个?
替换为null
。所以下面这行可以重写:
作为
lmyy7pcs4#
试着这样做: