2009-07-29 5 views
4

성공적으로 파이썬을 사용하여 데이터베이스를 만들고 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를 사용하는 커서를 필요가 없습니다

db.execute() 대신 c.execute의()와 C = db.cursor() 라인을 제거

커서는 데이터를 삽입하는 데 사용되지 않지만 일반적으로 데이터를 읽거나 제자리에서 데이터를 업데이트하는 데 사용됩니다.

+0

제안 해 주셔서 감사하지만 이미 시도했습니다. –

관련 문제