我使用主键和自动增量创建了一个表。Python - 没有自动增量主键值的Sqlite插入元组
with open('RAND.xml', "rb") as f, sqlite3.connect("race.db") as connection:
c = connection.cursor()
c.execute(
"""CREATE TABLE IF NOT EXISTS race(RaceID INTEGER PRIMARY KEY AUTOINCREMENT,R_Number INT, R_KEY INT,\
R_NAME TEXT, R_AGE INT, R_DIST TEXT, R_CLASS, M_ID INT)""")
我想然后插入一个元组,这当然比总列数小1,因为第一个是自动增量。
sql_data = tuple(b)
c.executemany('insert into race values(?,?,?,?,?,?,?)', b)
如何解决此错误。
sqlite3.OperationalError: table race has 8 columns but 7 values were supplied
我可能会误导你,因为我相信如果你试图在主键字段中存储NULL(因为NULL永远不是有效的主键),一些数据库会生成自动增量值。 – holdenweb
是的,它仍然是错误。 'python xml_race.py Traceback(最近呼叫的最后一个): 文件“xml_race.py”,第78行,在 值(?,?,?,?,?,?,?)''',sql_data) sqlite3.ProgrammingError:提供的绑定数量不正确。当前的语句使用7,并提供了6。将尝试在 –
sayth
中添加一个空值该错误消息的明确含义不是“len(sql_data)!= 7” - 您可以使用“print”来检查它以验证吗? – holdenweb