基本上,我们有一个表(original table
),并将其备份到另一个表(backup table
)中。因此,两个表具有完全相同的架构。
首先,两个表(original table
和backup table
)都包含完全相同的数据集。经过一段时间后,出于某种原因,我需要验证original table
中的数据集是否已更改。
为此,我必须将original table
中的数据集与backup table
进行比较。
假设original table
具有以下架构:
create table LemmasMapping (
lemma1 int,
lemma2 int,
index ix_lemma1 using btree (lemma1),
index ix_lemma2 using btree (lemma2)
)
如何实现数据集比较?
更新:表没有主键。它只是存储两个ID之间的映射。
最佳答案
我会写三个查询。
您可以将三个查询合并在一起以返回单个结果集。如果这样做,则需要添加一列以指示它是哪种类型的行(更新,插入或删除)。
稍加努力,您便可以使用完整的外部联接在一个查询中执行此操作。小心外部联接,因为它们在不同的SQL引擎中的行为不同。谓词放在where子句中,而不是join子句中,有时会使您的外部联接变成内部联接。
关于mysql - 如何验证两个表是否具有完全相同的数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2129717/