【发布时间】:2020-06-10 11:07:40
【问题描述】:
我正在尝试比较不同的数据库并尝试确定这些数据库中的表是否相同/相等。比如我已经设置了如下
数据库“a”只有一个名为“abc”的表 数据库“b”只有一个名为“abc”的表 数据库“c”有两个名为“abc”和“xyz”的表
我编写了以下代码,执行时运行良好,但从输出中可以看出 它说两者都是“假的”。但是如果你看到我的设置,数据库'a'和数据库'b'只有一个相同的表,我希望它打印“真”但它打印“假”,当你比较数据库'b'和数据库'c'时,它们不相同,因为数据库“c”有一个名为“xyz”的额外表,所以我希望它打印“假”,这是正确的。 请让我知道我的代码有什么问题或者是否有解决方法。基本上我想做一个差异并比较两个数据库并检查它们是否具有相同的相同表?
import pandas as pd
import mysql.connector
mydb1 = mysql.connector.connect(host="localhost", user="xxxxxxxx", passwd="xxxxxxxx", database="a")
mydb2 = mysql.connector.connect(host="localhost", user="xxxxxxxx", passwd="xxxxxxxx", database="b")
mydb3 = mysql.connector.connect(host="localhost", user="xxxxxxxx", passwd="xxxxxxxx", database="c")
querystmt1 = "SHOW TABLES"
querystmt2 = "SHOW TABLES"
querystmt3 = "SHOW TABLES"
df1 = pd.read_sql(querystmt1, mydb1)
df2 = pd.read_sql(querystmt2, mydb2)
df3 = pd.read_sql(querystmt3, mydb3)
print(df1)
print(df2)
print(df3)
print(df1.equals(df2))
print(df2.equals(df3))
【问题讨论】:
标签: python mysql database pandas datatable