[英]How can I successfully insert row columns selected from MySQL table into a destination MSSQL table using Python?
This python script connects to MySQL
database and MssQL 2008 R2
database. 此python脚本连接到MySQL
数据库和MssQL 2008 R2
数据库。 MySQL database runs on Linux Ubuntu 11.04
. MySQL数据库在Linux Ubuntu 11.04
上运行。 MssQL 2008
runs on Windows
. MssQL 2008
在Windows
运行。 The script runs from Linux (Ubuntu 11.04). 该脚本从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 works for me. Pyodbc为我工作。 http://sourceforge.net/projects/pyodb/ http://sourceforge.net/projects/pyodb/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.