Estoy intentando crear un campo de autoincremento (como SERIAL) utilizando un desencadenador y una secuencia. Sé que sólo puede utilizar una secuencia o tipo serie en el campo, pero tengo que resolver esto utilizando ambos métodos (disparadores y secuences)Crear campo de autoincrement con desencadenador y secuencia en Postgres
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();
que probar esta combinación, pero dosis no funciona, el apoyo alimentario tabla tiene dos campos solo, ID entero (el autoincremento con disparador y secuencia) y el nombre varchar.
¿Alguna sugerencia?
Gracias
acaba de dar una explicación más de "no funciona". –
¿Por qué no quieres usar el tipo de SERIAL simple? –
Puede llamar a 'nextval()' en la secuencia asociada de una columna 'serial' para otros fines. No hay necesidad de complicar las cosas con un disparador. Aparte de eso, sin mensaje de error, tu pregunta es solo ruido. Incluirlo textualmente, por favor. –