MySql -> PostgreSql: Probleme beim INSERT

#2642434
Lesenswert?

Servus allerseits

Ich bin dabei die Datenbank einer meiner Applikationen von MySQL auf 
PostgreSql umzustellen.
Dabei bin ich auf ein Problem gestossen und weiss nicht, ob der von mir 
eingeschlagene Weg der richtige ist.
Beim MySQL konnte ich wie folgt ein Insert ausführen:

Pseudo-Code:
1
if insert
2
  Insert Into TableName Set id_nr = DEFAULT, 
3
else
4
  Update TableName set
5
endif
6
LName = "xyz", 
7
FName = "abc",
8
etc.
9

10
if !insert
11
  Where id_nr = nnn
12
endif

Hatte den Vorteil, dass ich Insert und Update in derselben Funktion 
erschlagen konnte.
PostgreSql meckert aber bei einem Insert.
Dort habe ich folgenden Umweg eingeschlagen:

Pseudo-Code:
1
if insert
2
  BEGIN;
3
  Insert Into TableName DEFAULT VALUES;
4
  if error
5
    ROLLBACK;
6
    return
7
  endif
8
  nId_nr = last_idnr_of(TableName)
9
endif
10

11
Update TableName Set 
12
LName = "xyz", 
13
FName = "abc",
14
etc.
15
where id_nr = nId_nr
16

17
if insert 
18
  if !error
19
    COMMIT;
20
  else
21
    ROLLBACK;
22
  endif
23
endif
Funktioniert zwar, kommt mir aber irgendwie nicht so ganz koscher vor.
Waere für ein paar Kommentare sehr dankbar.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren