问题描述
con=sqlite3.connect('database')
cursor=con.cursor()
sql=[("1","first","New"),("2","second",("3","third","New")]
cursor.executemany("""insert into table(srnumber,order,type)
values(?,?,?)""",sql)
for row in cursor.execute('select * from table WHERE type ="New"'):
print(row)
这只会打印所有新插入的记录一次。我希望能够在每次插入后打印。
第一次插入后:
1 个新的
第二次插入后:
1 个新的
2 秒新
解决方法
您必须使用 execute()
而不是 executemany()
一次插入一行,并且在插入每一行之后您必须执行 SELECT...
语句:
rows = [("1","first","New"),("2","second",("3","third","New")]
sql_insert = "INSERT INTO tablename(srnumber,`order`,type) VALUES (?,?,?)"
sql_select = "SELECT * FROM tablename WHERE type = 'New'"
for row in rows:
cursor.execute(sql_insert,row)
for inserted_row in cursor.execute(sql_select):
print(inserted_row)
请注意,如果表中已有带有 type = 'New'
的行,它们都将由 SELECT...
语句返回。