python中的Sqlite - 每次插入后打印

问题描述

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... 语句返回。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...