ERROR: syntax error at or near "WORK". Ist es möglich innerhalb einer Funktion eine Transaktion durchzuführen?
- Code: Alles auswählen
CREATE OR REPLACE FUNCTION TRANS_GUEST_RESERVED(BOOL,VARCHAR(60)) RETURNS VOID AS
$BODY$
DECLARE
GID INTEGER;
RID INTEGER;
BEGIN
[B]BEGIN WORK; [/B]
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;
[B]COMMIT;[/B]
END;
$BODY$
LANGUAGE 'PLPGSQL' VOLATILE;
beste grüße enrix
