SQLだけでテーブル内容の一致判定をする
同じ定義のテーブルが2つあり、 その全行が同じかどうか(違う行がないか)を確かめたいときの方法。
select count(*) from ( (select * from x except select * from y) union all (select * from x except select * from y) )
結果が 0 なら内容は同じです。1 以上なら何かしら異なる。
ちなみに遅いです。あくまでも行数が少ないとき向け(100万行くらいまでか)。 高速にしたいならテーブルごとにユニークキーを考えてSQL書くしかないですね。