比对两数据库中表与表 字段与字段的不同(1)

  前两天检查了一下开发库与测试库的表、字段及字段类型 是否一致,如果不一致,先记录下来 然后更改之


  比对一次太浪费时间,索性写个小工具,比对视图名称 和 过程名称 之后再补上。


  没什么复杂的业务,就是反复查那几个字典表。回头有时间 把oracle的加上。


  判断列的过程 调试着有点烦了 ,所以前面定义了好多的变量 ,有兴趣的朋友可以优化一下。


  最后查询comparetable时候  最好加上distinct  因为如果表的数量或列的数量不一致时候 , 会出现重复数据,这也是设计这个过程时候,怕漏掉比对对像所导致的结果。

  -- =============================================
-- Author:        <Author,xiaoep>
-- Create date: <Create Date,2012-05-14>
-- Description:    <Description,compare table view and procedure between different database>
-- =============================================
ALTER PROCEDURE [dbo].[CompareDifferentDatabase]
    -- Add the parameters for the stored procedure here
    (@base1 varchar(64),@base2 varchar(64),@output_table varchar(64)='CompareTable')
AS
BEGIN


    execute CheckDatabaseName @base1,@base2,@output_table
    
END


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用pandas库来实现这个功能。具体步骤如下: 1. 连接数据库,使用pandas的read_sql函数分别读取中需要比对字段,将它们转换为DataFrame类型; 2. 使用pandas的merge函数对个DataFrame进行合并,根据需要比对字段进行合并; 3. 使用pandas的isnull函数判断合并后的DataFrame中是否存在缺失值,如果存在,则说明中有不同的数据; 4. 如果合并后的DataFrame中存在缺失值,则可以使用pandas的dropna函数删除缺失值所在的行,得到不同的数据。 下面是一个示例代码,假设需要比对A中的col1和col2字段B中的col1和col2字段: ```python import pandas as pd import pymysql # 连接数据库 conn = pymysql.connect(host='localhost', user='root', password='123456', database='testdb') # 读取A中需要比对字段 df1 = pd.read_sql('SELECT col1, col2 FROM tableA', con=conn) # 读取B中需要比对字段 df2 = pd.read_sql('SELECT col1, col2 FROM tableB', con=conn) # 合并个DataFrame df_merge = pd.merge(df1, df2, on=['col1', 'col2'], how='outer', indicator=True) # 判断是否存在缺失值 if df_merge['col1'].isnull().sum() > 0 or df_merge['col2'].isnull().sum() > 0: # 删除缺失值所在的行 df_diff = df_merge.dropna(subset=['col1', 'col2']) # 输出不同的数据 print(df_diff) else: print('中的数据完全相同') # 关闭数据库连接 conn.close() ``` 需要注意的是,在实际使用中需要根据具体情况修改SQL语句和需要比对字段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值