kprasanna_79 has asked for the wisdom of the Perl Monks concerning the following question:

Revered MOnks
Is there any perl modules to compare 2 database tables. I can able to do it using my program, but i am eager to know this some how.
-Prasanna.K
  • Comment on Need module to compare 2 database tables

Replies are listed 'Best First'.
Re: Need module to compare 2 database tables
by planetscape (Chancellor) on Nov 16, 2007 at 11:00 UTC
Re: Need module to compare 2 database tables
by Corion (Patriarch) on Nov 16, 2007 at 09:44 UTC

    Comparing two database tables of identical structure is "simply" a matter of using the right SQL statements. Provided your database can handle joins of two tables of approximately the same size:

    SELECT 'different', a.field1, b.field1, a.field2, b.field2 FROM a, b WHERE a.key1 = b.key1 AND a.key2 = b.key2;
    SELECT 'missing in b', a.* FROM a LEFT OUTER JOIN b ON a.key1 = b.key1, a.key2 = b.key2 WHERE b.key1 IS NULL AND b.key2 IS NULL

    The approach is basically the same as doing it with Perl, by looking at your tables as two hashes, indexed by their keys. Most likely, you will want to treat all column as the key columns in your comparison.