Hallo, ich hab da ein kleines Problem, ich will eine Funktion schreiben, die automatisch eine Sequenz ruft und somit den Primärschlüssel automatisch setzt. Leider hab ich keine Infos gefunden, ob dies überhaupt möglich ist, aus einer Funktion im Statement eine Sequenz auszuführen. Kann mir jemand sagen, wie das geht bzw. ob das überhaupt möglich ist. Mein Ansatz schaut bisher so aus, funktioniert aber leider net:
– Sequenz erzeugen:
CREATE SEQUENCE serial START 1000;
– Funktion anlegen:
CREATE OR REPLACE FUNCTION f_insert(VARCHAR(30), int4, float4, VARCHAR(2))
RETURNS void AS
'INSERT INTO artikel VALUES(SELECT nextval('serial'), $1, $2, $3, $4)
LANGUAGE sql;
Danke für die rasche Antwort, ich hab deine Ratschläge beherzigt. Aber an dem Select vor dem Aufruf der Sequenz lag es leider nicht, aber ich hab gerade in der Hilfe die Lösung mir noch “erarbeitet”, falls es wen interessiert, in der Funktion muss die Sequenz nach diesem Schema gerufen werden: