python使用sqlite3时,如何判断一行是否成功插入到表中?例如
conn = sqlite3.connect("test.db")
c = conn.cursor()
c.execute("INSERT INTO TEST VALUES ('sample text')")
c.commit()
c.close()
如果调用execute()
or时没有抛出异常,commit()
则调用时插入commit()
。
成功提交事务是数据库层保证插入已写入磁盘的保证。
你可以得到所有的行,看看它是否在那里:
SELECT * FROM TEST
但是如果 SQLite 不起作用,它会给你一个错误消息。
您可以count()
在插入之前和之后进行行。
您可以尝试这样的事情来获得错误消息:
try:
c.execute("INSERT INTO TEST VALUES ('sample text')")
except sqlite3.OperationalError, msg:
print msg
您应该在connection made
(db selected which is conn
) not on 上进行提交cursor
。
conn = sqlite3.connect("test.db")
c = conn.cursor()
c.execute("INSERT INTO TEST VALUES ('sample text')")
#commit the changes to db
conn.commit()
conn.close()
首先,您应该对连接对象而不是游标进行提交,即
conn.commit()
不是c.commit()
然后您可以检查lastrowid
光标以确定插入是否成功conn.commit()
c.lastrowid