通过记录最后更新ID来去获取新数据同步MYSQL
# -*- coding: utf-8 -*-
import pymysql
import sys
#用自动任务的坑,不加这个自动任务跑不起,坑了我好久哇。
reload(sys)
sys.setdefaultencoding('utf8')
#第一步打开本地ID记录文本
record_id =open('test1.txt', 'r+')
#最后一步获取更新后的ID记录到TXT
def record():
db =pymysql.connect('远端数据库IP', '用户', '密码', '库',端口,charset='utf8')
cursor = db.cursor()
sql= "select id from t_sqapp_newuser_flow order by id desc limit 1"
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
id = row[0]
record_id.write(str(id))
db.close()
#第三步通过本地ID去远端查询是否有新数据
def readAndWrite(old_id):
db =pymysql.connect('远端数据库IP', '用户', '密码', '库',端口,charset='utf8')
cursor = db.cursor()
sql= "select * from 表 where id > %s " % (old_id)
cursor.execute(sql)
results = cursor.fetchall()
for value in results:
write=pymysql.connect('127.0.0.1','root','密码','库',charset='utf8')
Wcursor =write.cursor()
writeSql = "INSERT INTO 本地表(“列1”,“列2”,“列3”,“列4”,) " \
"VALUE ('%s', '%s', '%s', '%s')" %\
(value[1], value[2], value[3], value[4])
print(writeSql)
try:
Wcursor.execute(writeSql)
write.commit()
except:
write.rollback()
write.close()
cursor.close()
db.close()
#第一步查看本地数据现在ID是多少
s=record_id .read()
print(s)
#第二步通过本地ID去远端查询是否有新数据
readAndWrite(s)
#清空文本文件
record_id.seek(0)
record_id.truncate()
#最后一步获取更新后的ID记录到TXT
record()
#关闭文本
record_id.close()
Python 定时同步远程数据库的某个表中数据到另一个数据库的某个表(版本2)
猜你喜欢
转载自blog.csdn.net/liyyzz33/article/details/84303990
今日推荐
周排行