![](/img/trans.png)
[英]How can I INSERT into a MySQL table in Python with a variable number of columns?
[英]How can I successfully insert row columns selected from MySQL table into a destination MSSQL table using Python?
此python腳本連接到MySQL
數據庫和MssQL 2008 R2
數據庫。 MySQL數據庫在Linux Ubuntu 11.04
上運行。 MssQL 2008
在Windows
運行。 該腳本從Linux(Ubuntu 11.04)運行。
#!/usr/bin/python
import pymssql as ms
import MySQLdb as mdb
import sys
//Connection to MSSQL
#Connection to MSSQL
connMSSQL=ms.connect(host='192.168.8.52', user='sa', password='hostailpw321', database='hostail', as_dict=True)
//Connection to MySQL
#Connection to MySQL
connMySQL=mdb.connect('localhost', 'root', 'trail123', 'trail');
//Cursor to MSSQL
#Cursor to MSSQL
curMSSQL=connMSSQL.cursor()
//Cursor to MySQL
#Cursor to MySQL
curMySQL=connMySQL.cursor(mdb.cursors.DictCursor)
curMySQL.execute('SELECT * FROM clinics_mapping')
//Get Data from MySQL
#Get Data from MySQL server
for rowMySQL in curMySQL:
#print (rowMySQL['Clinic_name'],rowMySQL['Clinic_code'])
#curMSSQL.executemany("INSERT INTO clinics values(%s,%s)", [(rowMySQL['Clinic_name'],rowMySQL['Clinic_code'])])
names = rowMySQL['Clinic_name']
codes = rowMySQL['Clinic_code']
qryINS="INSERT INTO clinics(name,code)values('%s','%s')" %(str(names),str(codes))
curMSSQL.execute(qryINS)
#print (rowMySQL['Clinic_name'],rowMySQL['Clinic_code'])
#When I print qryINS I get a query that executes perfect in MSSQL 2008 R2 query editor
print qryINS
//Close MSSQL connection
#Close MSSQL connection
connMSSQL.close()
//Close MySQL connection
#Close MySQL connection
connMySQL.close()
#!/usr/bin/python
import pymssql as ms
import MySQLdb as mdb
import sys
#Connection to MSSQL
connMSSQL=ms.connect(host='192.168.8.52', user='sa', password='hostailpw321', database='hostail', as_dict=True)
#Connection to MySQL
connMySQL=mdb.connect('localhost', 'root', 'trail123', 'trail');
#Cursor to MSSQL
curMSSQL=connMSSQL.cursor()
#Cursor to MySQL
curMySQL=connMySQL.cursor(mdb.cursors.DictCursor)
curMySQL.execute('SELECT * FROM clinics_mapping')
#Get Data from MySQL server
for rowMySQL in curMySQL:
#print (rowMySQL['Clinic_name'],rowMySQL['Clinic_code'])
#curMSSQL.executemany("INSERT INTO clinics values(%s,%s)", [(rowMySQL['Clinic_name'],rowMySQL['Clinic_code'])])
names = rowMySQL['Clinic_name']
codes = rowMySQL['Clinic_code']
qryINS="INSERT INTO clinics(name,code)values('%s','%s')" %(str(names),str(codes))
curMSSQL.execute(qryINS)
connMSSQL.commit()
"""
I had not called commit() which persists your data if you had not put autocommit to True.I have called it as connMSSQL.commit() in my script.
"""
#Close MSSQL connection
connMSSQL.close()
#Close MySQL connection
connMySQL.close()
Pyodbc為我工作。 http://sourceforge.net/projects/pyodb/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.