Próbuję utworzyć pole autorekrecji (np. SERIAL) za pomocą wyzwalacza i sekwencji. Wiem, że można używać tylko sekwencję lub szeregowego typu na polu, ale muszę rozwiązać ten problem za pomocą obu metod (wyzwalacze i secuences)Utwórz pole autocenzury z wyzwalaczem i sekwencją w Postgresie
CREATE SEQUENCE AlimentosSequencia;
CREATE OR REPLACE FUNCTION AlimentoFuncion()
RETURNS "trigger" AS
$BODY$
BEGIN
New.id:=nextval('AlimentosSequencia');
Return NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
CREATE TRIGGER AlimentosTrigger
BEFORE INSERT
ON alimento
FOR EACH ROW
EXECUTE PROCEDURE AlimentoFuncion();
staram tej kombinacji, ale nie robi zadziała, alimento tabela ma dwa pola only, integer id (autoinkrement z wyzwalaczem i sekwencją) i nazwa varchar.
Jakieś sugestie?
Dzięki
wystarczy podać więcej wyjaśnień "to nie działa". –
Dlaczego nie chcesz użyć prostego typu SERIAL? –
Możesz po prostu wywołać 'nextval()' na powiązanej sekwencji kolumny 'serial' dla innych celów. Nie trzeba komplikować rzeczy za pomocą wyzwalacza. Poza tym, bez komunikatu o błędzie, twoje pytanie jest po prostu szumem. Dołącz to dosłownie, proszę. –