Postgresql Transaktion innerhalb einer Funktion

enrix

Mitglied
hallo, ich arbeite mit postgresql und würde gern innerhalb einer eigenen Funktion eine Transaktion durchführen. Leider bekomme ich eine Fehlermeldung:
ERROR: syntax error at or near "WORK". Ist es möglich innerhalb einer Funktion eine Transaktion durchzuführen?

Code:
CREATE OR REPLACE FUNCTION TRANS_GUEST_RESERVED(BOOL,VARCHAR(60)) RETURNS VOID AS
$BODY$
   DECLARE
     GID INTEGER;
     RID INTEGER;
     BEGIN

     BEGIN WORK;    
     SELECT INTO GUEST_ID GID FROM REZEPTION.GAST WHERE EMAIL =$5 OR TELEFON = $6;
          IF GID ISNULL THEN
            INSERT INTO REZEPTION.GAST(ANREDE,NAME)
            VALUES($1,$2) RETURNING ID INTO GID;
          END IF;
       INSERT INTO REZEPTION.RESERVIERT (GID,ANMERKUNG) VALUES (GID) RETURNING 
       RID INTO RID;
       COMMIT;
              
     END;
  
     
$BODY$
LANGUAGE 'PLPGSQL' VOLATILE;

MFG Enrix
 
Zurück