2017-01-26 8 views
-5

PythonコードのCOMPANYテーブルにデータを挿入するために、常にデータ挿入ステートメントを実行する必要があるのはなぜですか?それはデータの二倍の入力になりますか?私はデータ挿入ステートメントは一度データを挿入するために一度実行する必要があります、その後、データは、データベースから読み取ることができる必要があります。ただし、データベースからデータを読み取るためには、常にデータ挿入ステートメントを実行する必要があります。データ挿入ステートメントを省略すると、データが挿入されていないかのように、データベースからデータを読み取ることができません。なぜSQLiteは挿入されたデータを保存しますか?

これがなぜ起こるのか理解してもらえますか?以下は

はコードです:

#!/usr/bin/python 
import sqlite3 
conn = sqlite3.connect('test.db') 
print "Opened database successfully" 

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \  VALUES (1, 'Paul', 32, 'California', 20000.00)") 

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \  VALUES (2, 'Allen', 25, 'Texas', 15000.00)")
+0

最初に 'import sqlite3' –

+0

' con = sqlite3.connect( 'test.db') ' –

答えて

1

最初のポイントは:あなたの代わりにdb-api2 standardの一部ではないあるconnection.executeを呼び出すcursorを使用する必要があります。

だから、あなたが欲しい:

conn = sqlite3.connect('test.db') 
c = conn.cursor() 
c.execute(<your ssql statement here>) 

2点目:

conn.commit()

を:あなたの挿入後にあなたが必要とするので、あなたは、あなたのトランザクションをコミットするまでは何も本当にあなたのDBに書き込まれません

all this is very clearly explained in the FineManualは完全な例であることに注意してください。は他に先にという文章を読んでください。

第3のポイント:current working directoryが何であっても、 "test.db"ファイルが検索されます(存在しない場合は最終的に作成される)ので、絶対パスを使用してください。期待どおりのデータベースを使用していることを確認するためにスクリプトが呼び出されます。

関連する問題