2013-02-13 10 views
13

IDとqSQLの2つのカラムを持つTBLTESTというMySQLテーブルがあります。各qSQLにはSQLクエリがあります。PythonスクリプトからMySQLテーブルにデータを挿入

私は別のテーブルFACTRESTTBLを持っています。

テーブルTBLTESTには10行あります。

たとえば、TBLTESTでは、id = 4とqSQL = "select id、city、state from ABC"と指定できます。

Pythonを使用してTBLTESTからFACTRESTTBLに挿入する方法、辞書を使用している可能性がありますか?

Thx!

+0

あなたが列 'qSQL'でクエリを実行し、FACTRESTTBL''に結果を挿入したいです? 'FACTRESTTBL'の列は何ですか? –

+0

FACTRESTTBLの列はid、city – Mario

答えて

25

MySQLdb for Pythonを使用できます。

サンプルコード(私はここでそれを実行する方法がないよう、あなたがそれをデバッグする必要があります):

#!/usr/bin/python 

import MySQLdb 

# Open database connection 
db = MySQLdb.connect("localhost","testuser","test123","TESTDB") 

# prepare a cursor object using cursor() method 
cursor = db.cursor() 

# Select qSQL with id=4. 
cursor.execute("SELECT qSQL FROM TBLTEST WHERE id = 4") 

# Fetch a single row using fetchone() method. 
results = cursor.fetchone() 

qSQL = results[0] 

cursor.execute(qSQL) 

# Fetch all the rows in a list of lists. 
qSQLresults = cursor.fetchall() 
for row in qSQLresults: 
    id = row[0] 
    city = row[1] 

    #SQL query to INSERT a record into the table FACTRESTTBL. 
    cursor.execute('''INSERT into FACTRESTTBL (id, city) 
        values (%s, %s)''', 
        (id, city)) 

    # Commit your changes in the database 
    db.commit() 

# disconnect from server 
db.close() 
+1

です。https://github.com/petehunt/PyMySQLもあります。配布目的であれば純粋なpythonです。 – theodox

+0

指定されたクエリが動作します。 TBLTESTに10個の行があるため、一度に1つのクエリを実行しようとするとクエリが実行されます。 複数のクエリを実行したいとします。cursor.execute( "(4,5,6)のTBLTESTからのqSQLの選択")、id = 5の場合は 、qSQL = "select id、city、zip from DEF " for id = 6、qSQL =" ABCからID、市、郡を選択 " どうすればよいですか? Thx – Mario

関連する問題