sqliteデータベースに複数のレコードを挿入しようとしています。これは私のテストスクリプトです。私は二回上記のスクリプトを実行するとSqlite3の挿入はPythonでレコードを保持しません
import sqlite3
from datetime import datetime
company = 'fghjk'
keyword = 'awesome'
filename = 'test.txt'
date_found = datetime.now()
conn = sqlite3.connect('C:\\sqlite\\test.db')
c = conn.cursor()
for i in range(0,4):
insert_query = "INSERT into records (company,keyword,filename,date_found) values (?,?,?,?)"
c.execute(insert_query, [company,keyword,filename,date_found])
select_query = "SELECT * FROM records"
c.execute(select_query)
res = c.fetchall()
print res
for i in res:
for b in i:
print b
、私は8つのレコードを持っていることを期待していますが、それは常にバック4行を与えています。誰かが私を啓発することはできますか?
出力:
1
fghjk
awesome
test.txt
2016-09-23 09:11:19.585000
2
fghjk
awesome
test.txt
2016-09-23 09:11:19.585000
3
fghjk
awesome
test.txt
2016-09-23 09:11:19.585000
4
fghjk
awesome
test.txt
2016-09-23 09:11:19.585000
これは私のテーブルの作成文です。
conn.execute('''CREATE TABLE records
# (ID INTEGER PRIMARY KEY AUTOINCREMENT,
# company TEXT NOT NULL,
# keyword INT NOT NULL,
# filename CHAR(50),
# date_found DATETIME);''')
スクリプトの最後に接続を閉じてみましたか?接続を使用するすべてのコードを 'with conn:'でラップすると、より簡単に達成できます。私はこれを実行し、問題は見ません。 –
私はスクリプトの最後に 'close()'を追加しました。それと同じ結果。あなたは答えを投稿する気になるでしょうか?ありがとうございました。 @PaulRooney – essramos