最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

当前动态:Python学习之二:不同数据库相同表是否相同的比较方法

来源:博客园


【资料图】

摘要

昨天学习了使用python进行数据库主键异常的查看.当时想我们有跨数据库的数据同步场景.对应的我可以对不同数据库的相同表的核心字段进行对比.这样的话能够极大的提高工作效率. 我之前写过很长时间的shell.昨天跟着同事开始学python.感觉的确用python能够节约大量的时间. 生活中必须要挑战自己. 做更好的自己. 

思路

设置一个进行数据库连接构件的function.先将基准数据查询出来放到一个基准的list 里面然后设置一个循环. 循环内调用此function然后循环内将数据取出, 对基准数据进行比较.相同则输出数据数据库实例编号. is same.不相同输出数据库实例实例编号. is different.

dbconnection function

# coding=utf-8# 设置编码格式import jaydebeapiimport configparserimport datetime# 引入需要的包config = configparser.ConfigParser()# 定义配置对象config.read("su.ini",encoding="utf-8")def getconn(dbinstance) :# 读取配置文件 形参传入信息    jdbcString = config.get(dbinstance,"jdbcString")    driverPath = config.get(dbinstance,"driverPath")    urlString = config.get(dbinstance,"urlString")    userName = config.get(dbinstance,"userName")    passWord = config.get(dbinstance,"passWord")    conn = jaydebeapi.connect(jdbcString,urlString,[userName,passWord],driverPath)    return conn

dbcompare function

# coding=utf-8import jaydebeapiimport configparserimport datetimeimport dbconnectionconn = dbconnection.getconn("bf")getsql="select id,code from xxxuser  order by code "cur = conn.cursor()cur.execute(getsql)usercode = cur.fetchall()for i in ["DB01","DB02","DB03","DB04","DB05"] :    conntest = dbconnection.getconn(i)    curtest = conntest.cursor()    curtest.execute(getsql)    usercodetest = curtest.fetchall()    print(str(i))    if usercode == usercodetest:        print("User Code is Same")    else:        print("User Code is Different")for i in usercode :    print(str(i[0]) + " " + str(i[1]))

关键词: