Update und Insert Gleichzeitig?

  • Themenstarter Themenstarter rog
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
R

rog

Gast
Hallo liebe Leute,

wie geht man vor, wenn man in einer Tabelle Daten eintragen soll, die teilweise schon vorhanden sind?

Man stelle sich vor in meiner "Zieltabelle" sind folgende 2 Datensätze (Primary key ist die Personenspalte

person1:adresse1:telefon1
person2:adresse2:telefon2


Nun bekomme ich aus einer anderen "Quelltabelle" folgende Datensätze mit
select * from quelltabelle;

person2:adresse2:neuetelefonnummer
person3:adresse3:telefon3


Um dieses Resultset in meiner Datenbank richtig eintragen zu können, müsste ich eigentlich sagen
dass in der Zieltabelle der Datensatz von Person2 geändert gehört (update) und der
Datensatz von person3 neu eingetragen gehört (insert).

Kann eine Datenbank das irgendwie selbst lösen?
(Also Bestehende Keys mit update überschreiben und neue neu inserten)
Oder wie gehe ich da vor? Kommt mir relativ mühsam vor, wenn ich erst Prüfe welche Keys in der Zieltabelle sind dann die mit den keys im Resultset aus der Quelltabelle vergleiche und dann je nachdem ein insert oder update mache.

Vielen Dank für etwaige Tips.

lg
rog
 
rog hat gesagt.:
... Kommt mir relativ mühsam vor ...
Das ist nicht mühsam und könnte etwa so aussehen:
Code:
insert into zieltabelle select * from quelltabelle as q inner join zieltabelle as z where z.personid is null;
update zieltabelle set .. ... inner join zieltabelle as z where z.personid not is null;
Viel Erfolg!
 
Hallo,
super, danke für deine Antwort.
Werde mir das dann morgen noch im Detail ansehen.

lg
rog
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben