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?
MFG Enrix
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