2012-03-21 145 views
5

我有以下代碼:SQLite的Python不更新表

import sqlite3 

con = sqlite3.connect("testDB") 
cur = con.cursor() 

#cur.execute('CREATE TABLE test_table (id integer primary key, data text)') 
cur.execute('INSERT INTO test_table VALUES (?, ?)', (76, 'MyData')) 

當我運行此腳本時不更新表。但是,當我在Linux中使用sqlite3命令行執行相同的插入操作時,它會更新。爲什麼這樣或那樣我做錯了什麼?

回答

10
# Save (commit) the changes 
con.commit() 
+0

con.commit()這應該在一切完成後完成,或者我可以在每個con.execute()語句後提交? – user873286 2012-03-21 11:56:55

+0

如果另一個程序想要立即查看數據,則應立即提交。否則,你可以在最後提交。 – kev 2012-03-21 12:04:16

1

您是否在插入子句後嘗試提交?

+0

con.commit()工作,但con.commit()這應該在一切完成後完成,或者我可以在每個con.execute()語句後提交???提交的主要目的是什麼? – user873286 2012-03-21 11:59:23

+0

「提交」是要完成表格中的所有更改......但如果您希望返回最後一個狀態,請使用「回滾子句」 – 2012-03-21 12:06:56