Zwei gleiche Tabellen: Zeige Änderungen

Michi_R

Fleissiger Benutzer
Beiträge
81
Hallo Leute.

Folgende Situation: Ich habe eine Tabelle auf die ich ein Update durchführe (Externe Quelle - CSV File oder andere Datenquelle).

Nun möchte ich gerne nach diesem Update alle Zeilen anzeigen lassen, die sich geändert haben. Ob sich dabei ein oder mehrere Felder geändert haben ist egal.

Dazu würde ich vor dem Update eine Backup Tabelle anlagen, dann das Update, dann habe ich alt und neu.
Aber wie sieht der Query aus?
Die Anzahl der Datensätze bleibt immer gleich.
Ich hab sowas wie User_ID als Primary key. Und der User hat Name, Vorname, Mail usw. Nach dem Update will ich alle User sehen, bei denen sich ein oder mehrere Attribute geändert haben.

Wäre super wenn wer helfen kann. Danke schon mal.
 
Werbung:
Ich hab sowas wie User_ID als Primary key. Und der User hat Name, Vorname, Mail usw. Nach dem Update will ich alle User sehen, bei denen sich ein oder mehrere Attribute geändert haben.

Wäre super wenn wer helfen kann. Danke schon mal.

Standard-SQL: EXCEPT:

Code:
test=# create table michi_1 as select s, 'name' || s::text  as val from generate_series(1,10) s;
SELECT 10
test=*# create table michi_2 as select * from michi_1;
SELECT 10
test=*# update michi_1 set val = 'neu' where s = 5;
UPDATE 1
test=*# select * from michi_1 except select * from michi_2;
 s | val
---+-----
 5 | neu
(1 row)

test=*# select * from michi_2 except select * from michi_1;
 s |  val
---+-------
 5 | name5
(1 row)
 
Werbung:
Schonmal Minus versucht ?
(Extrem unsauber, bitte die Spalten explizit angeben)
Code:
Select *
From tab_a
Minus
Select *
From tab_b
 
Zurück
Oben