2012-03-21 31 views
5

Tôi có đoạn mã sau:SQLite python không cập nhật bảng

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')) 

khi tôi chạy kịch bản này nó không cập nhật bảng. Nhưng khi tôi làm cùng một chèn bằng cách sử dụng sqlite3 commandline trong Linux, nó cập nhật. Tại sao nó như vậy hoặc có bất cứ điều gì tôi đang làm sai?

Trả lời

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

con.commit() điều này nên được thực hiện sau khi mọi thứ kết thúc, hoặc tôi có thể cam kết sau mỗi câu lệnh con.execute() ??? – user873286

+0

Nếu chương trình khác muốn xem dữ liệu ngay lập tức, bạn nên thực hiện ngay lập tức. Nếu không, bạn có thể cam kết ở cuối. – kev

1

Bạn đã thử cam kết sau mệnh đề chèn?

+0

con.commit() làm việc nhưng con.commit() điều này nên được thực hiện sau khi mọi thứ được hoàn thành, hoặc tôi có thể cam kết sau mỗi câu lệnh con.execute() ??? mục đích chính của cam kết là gì? – user873286

+0

'cam kết' là hoàn thành tất cả các thay đổi trong bảng của bạn ... nhưng nếu bạn muốn quay lại trạng thái cuối cùng, bạn sử dụng 'điều khoản rollback' –

Các vấn đề liên quan