python3数据库同步_通过python实现本地和远端的两个数据库表中的数据同步

import pymssql

import time

import datetime

sql_insert = """

insert 数据库名.dbo.t_jl_数据库表名 values (

%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,

%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,

%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,

%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,

%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,

%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,

%s,%s,%s,%s,%s,%s,%s

)

""" #定义一个插入数据库的语句,上面中多个%s是数据库表中的列数加2

while True:

try:

cn_server = pymssql.connect( #服务器数据库连接,就是要被插入数据的数据库服务器

host = '172.16.221.221',

port = 1433,

user = 'aa',

password = '668977'

)

cn_cems = pymssql.connect( #现场数据库连接,就是要提取数据的数据库服务器

host = '172.16.87.66',

port = 1433,

user = 'admin',

password = '235689',

database = 'cems_control'

)

cr_server = cn_server.cursor() #服务器数据库游标

cr_cems = cn_cems.cursor() #现场数据库游标

cr_server.execute("select max(id) id from 数据库.dbo.t_jl_数据库中的表") #从服务器读取最后记录的id

begin_datetime = cr_server.fetchone()[0]

cr_cems.execute("select * from cems_control.dbo.soot1 where id > %s",(begin_datetime)) #从现场数据库读取数据

data_records = cr_cems.fetchall()

for l in data_records:

cr_server.execute(sql_insert,l) #写入服务器数据库

cn_server.commit()

cn_server.close()

cn_cems.close()

print("\n导入",len(data_records),"行数, 时间: ",datetime.datetime.now())

except pymssql.OperationalError as e:

print("\n出错, 时间: ",datetime.datetime.now(),e) #打印运行的情况

finally:

time.sleep(800) #暂停800秒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值