2009-07-29 31 views
4

Pythonを使用してデータベースを作成し、execute()メソッドを実行して2つの新しいテーブルを作成し、列名を指定できます。ただし、データベースにデータを挿入することはできません。これは私がデータベースにデータを挿入するために使用しようとしていますコードです:データを挿入するにはPythonを使用してsqlite3データベースにデータを挿入できません

#! /usr/bin/env python 

import sqlite3 

db = sqlite3.connect('data.db') 

db.execute('CREATE TABLE companies ' \ 
     '('\ 
     'company varchar(255) '\ 
     ')') 

db.execute('CREATE TABLE data ' \ 
     '('\ 
     'timestamp int, '\ 
     'company int, '\ 
     'shares_held_by_all_insider int, '\ 
     'shares_held_by_institutional int, '\ 
     'float_held_by_institutional int, '\ 
     'num_institutions int '\ 
     ')') 
+1

それは私のためにうまくいった。何かエラーがありますか? –

+0

いいえ、レコードがテーブルに追加されていないこと以外は、すべてがうまく動作しているようです。 –

答えて

19

は挿入後

db.commit() 

を追加してください。

+0

チャームのように働いた!ありがとう。 –

3

:ここ

#! /usr/bin/env python 

import sqlite3 

companies = ('GOOG', 'AAPL', 'MSFT') 

db = sqlite3.connect('data.db') 
c = db.cursor() 

for company in companies: 
    c.execute('INSERT INTO companies VALUES (?)', (company,)) 

は私が成功してデータベースを作成するために使用するコードですあなたは

はちょうどデシベルを使用してカーソルを必要としない

db.execute()の代わりにc.executeの()およびc = db.cursor()ラインを取り除く

カーソルはデータの挿入には使用されませんが、通常はデータの読み取りやデータの更新が行われます。

+0

提案をありがとうが、私はすでにそれを試していた。 –

関連する問題