我有一個場景,我想在兩個postgres表格之間找到增量。假設有表A和表B,我想查找表A中新添加的記錄,那麼我需要在表A中找到更新的記錄,然後查找表A中相對於表B刪除的記錄。Postgres DB中兩個表格之間的變化/ Deltas
什麼是最好的辦法,因爲我需要稍後處理那些基於更新/刪除/插入標誌。
我有一個場景,我想在兩個postgres表格之間找到增量。假設有表A和表B,我想查找表A中新添加的記錄,那麼我需要在表A中找到更新的記錄,然後查找表A中相對於表B刪除的記錄。Postgres DB中兩個表格之間的變化/ Deltas
什麼是最好的辦法,因爲我需要稍後處理那些基於更新/刪除/插入標誌。
你可以做一個完全外部聯接:
select id,
case
when s.id is null then 'Deleted in source table'
when t.id is null then 'Added in source table'
else 'Data Changed'
end as status
from source s
full outer join target t using (id)
where s is distinct from t;
這假定兩個表唯一列名爲id
。
where s is distinct from t
將比較兩個表中的所有列,因此會過濾出兩者中存在且相同的所有行。所以結果是在一個表中缺少的行或者具有不同的值。
那些表具有共同的唯一列嗎? –
是的兩個表都是相同的。 – AB90