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

python,学习,之二,不同,数据库,相同,是否,比较,方法 · 浏览次数 : 36

小编点评

```python import jaydebeapi import configparser import datetime import dbconnection 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 def getsql(self): return "select id,code from xxxuser order by code" def main(): # 设置数据库连接配置 config = configparser.ConfigParser() config.read('su.ini', encoding='utf-8') # 获取基础数据连接 conn = getconn('bf') # 执行查询,获取所有用户代码 usercode = [] for i in ['DB01', 'DB02', 'DB03', 'DB04', 'DB05']: conntest = getconn(i) curtest = conntest.cursor() curtest.execute(getsql()) usercode.extend(curtest.fetchall()) # 打印用户代码是否相同 for i in usercode: print(str(i[0]) + " " + str(i[1])) # 关闭数据库连接 conn.close() if __name__ == "__main__": main() ```

正文

摘要

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

思路

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

dbconnection function

# coding=utf-8
# 设置编码格式

import jaydebeapi
import configparser
import 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-8

import jaydebeapi
import configparser
import datetime
import dbconnection

conn = 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]))

与Python学习之二:不同数据库相同表是否相同的比较方法相似的内容:

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

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

Python学习之十八_获取神通数据库所有的表数据量

# Python学习之十八_获取神通数据库所有的表数据量 ## 背景 ``` 今天想获取一下所有数据库的表信息.但是发现神通数据库的系统表里面的表信息不正确 无法获取实际意义的表信息. 联系了下神通数据库的原厂高手. 给了一个存储过程可以进行相关的处理. 因为最近学习python(放下一周就忘记的七

Python学习之十_paramiko的简单学习

Python学习之十_paramiko的简单学习 简介 pywinrm 是python用于连接访问windows的工具 paramiko 是python用于连接访问linux的工具 ansible等工具很多也是基于类似的组件进行的处理 连接不同的系统进行命令行的操作. paramiko的简介 par

入门Semantic Kernel:OneApi集成与HelloWorld

引言 从这一章节开始正式进入我们的 Semantic Kernel 的学习之旅了。 什么是Semantic Kernel? Semantic Kernel是一个轻量级的开源框架,通过 Semantic Kernel 可以快速使用不同编程语言(C#/Python/Java)结合 LLMs(OpenAI

Python学习之五_字符串处理生成查询SQL

Python学习之五_字符串处理生成查询SQL 前言 昨天想给同事讲解一下获取查询部分表核心列信息的SQL方法 也写好了一个简单文档. 但是感觉不是很优雅. 最近两三天晚上一直在学习Python. 想将昨天的文档处理成一个工具的方式. 将查询SQL展示出来. 然后再由同事手工检查确认. 增加时间范围

[转帖]Python学习之十七_django的入门

# Python学习之十七_django的入门 ## 前言 ``` Python学习了一周, 慢慢总结摸索. 自己还是有多不会的地方. 感慨这些年浪费的时间. 所有的时间都是选择大于努力. 努力最多感动自己. 生活是需要的是正确的选择. 平凡的实在人太难在一个固化的社会生存. 共勉. ``` ##

使用Python的一维卷积

学习&转载文章:使用Python的一维卷积 背景 在开发机器学习算法时,最重要的事情之一(如果不是最重要的话)是提取最相关的特征,这是在项目的特征工程部分中完成的。 在CNNs中,此过程由网络自动完成。特别是在早期层中,网络试图提取图像的最重要的特征,例如边缘和形状。 另一方面,在最后一层中,它将能

python计算机视觉学习笔记——PIL库的用法

如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 这个是之前的笔记,自己看到了就顺带发出来,也是温习一下,内容可能不太全,算是入门贴吧。 前言:PIL 图

效率回归,工具库之美「GitHub 热点速览」

刚开源就变成新星的 igl,不仅获得了 2k+ star,也能提高你开发游戏的效率,摆平一切和图形有关的问题。如果这个没有那么惊艳的话,还有 The-Art-of-Linear-Algebra,重燃了我学习线性代数的自信心;htmx 则是一个被称为“后端工程师的前端库”,可以让人安心用 HTML 搞定页面,同样的 Web 应用技术还能用到的有 reflex,这个老牌的 Python 工具,常做 Web 开发的人一定不陌生。

【C++】使用ort推理yolov10

【C++】使用ort推理yolov10 前言:由于笔者是编导专业,想玩玩yolo模型,搜来搜去全是python,所以在学会之后写一篇文章帮助和笔者同样情况的人 环境 Windows 10 C++17 onnxruntime18.1(DML版本) opencv4.9 visual studio2022