如何测试两个数据库以找出丢失的记录?

时间:2012-09-17 17:09:24

标签: mysql testing

我有两个MySQL数据库DB1和DB2。 DB1只有一个表没有很多列。所有这些数据都在传输,并被拆分并存储在DB2中的几个表(比如2)中。

For example, DB1 has a table1 which looks like

        Student_Name   Id   Address   Attendance   Marks
        ------------   --   -------   ----------   -----
        John            1   90th st       70         90

The records that are transferred from DB1.table1 are stored in DB2.table and DB2.table2 in the following manner

DB2.table 1: Id   Student_Name   Address   
             --   ------------   -------
             1     John          90th st


DB2.table 2: Id   Attendance   Marks
             --   ----------   -----
             1     70            90

每天使用DB1中的新记录更新DB2。现在我想提出一些测试用例,以确定是否由于某些原因没有将任何记录从DB1复制到DB2(例如:如果缺少Id,则不复制该记录)。

我从来没有写过任何此类测试用例。我需要一些帮助,或者任何人都可以建议任何计划,比如我如何开始测试。有没有可以用来做这个的工具?

提前致谢

2 个答案:

答案 0 :(得分:0)

这会占用资源,但是:

SELECT * FROM DB1.table1 WHERE id NOT IN (SELECT id FROM DB2.table1 UNION SELECT id FROM DB2.table2);

答案 1 :(得分:0)

如果这是QA作为转换过程的一部分,请以当前格式导出DB1,然后以与DB1相同的格式导出DB2。使用diff

如果您想在线进行,请在DB2中添加一个'conversion_date'列,以限制您需要在@ zebediah49给您的查询中检查的记录数。

或者DB2中的触发器如何更新DB1以将记录标记为“已接收”?

世界是你的牡蛎。