工作中我们经常需要对比数据库中两张表的数据是否有差异,以下代码通过pymsql对两张表的数据进行简单对比,可以记录新旧表的数据总数,以及两张表中有差异的数据。
应用场景:旧表中数据迁移到新表
运行结果:打印出旧表中有,但是新表中没有的数据(迁移失败的数据),可以指定需要对比的字段
import pymysql
import logging
# 设定日志级别
logging.basicConfig(
level=logging.DEBUG
)
# 旧数据库
conn_old = pymysql.connect(host="localhost",
user="usr",
password="pwd",
db="db",
port=3306,
charset="utf8")
# 新数据库
conn_new = pymysql.connect(host="host",
user="usr",
password="pwd",
db="db",
port=3306,
charset="utf8")
# 新旧表字段存放在二维列表中
def db_diff(tb_new, tb_old, *tb_field):
"""
:param tb_new: 新表