Fiz uma função mas está dando erro.
ERROR:  query has no destination for result data
HINT:  If you want to discard the results of a SELECT, use PERFORM instead.

CREATE OR REPLACE FUNCTION gera_id_inscricao (par2 integer)
  RETURNS integer AS
$BODY$
DECLARE
        v_linha int4 := 0;

BEGIN

        SELECT id_inscricao FROM teste
        WHERE id_agenda = par2;

    GET DIAGNOSTICS v_linha = ROW_COUNT;

        IF v_linha > 0 THEN
        INSERT INTO teste (id_inscricao,id_agenda)
        VALUES ((SELECT MAX(id_inscricao)+1 AS proximo from teste WHERE
id_agenda = par2), par2);
        ELSE
                INSERT INTO teste (id_inscricao,id_agenda)
        VALUES ((SELECT COALESCE(MAX(id_inscricao), 1) AS proximo from
teste), par2);
    END IF;

    RETURN v_linha;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;

chamando ela:

select  gera_id_inscricao (1)

o que há de errado na função?

--------------------------------------------------------------------------------------------------------------------




Em 1 de setembro de 2010 10:31, Beto Lima <[email protected]> escreveu:

> Olá tenho uma dúvida e preciso criar uma função que retorne uma trigger.
> Gostaria da ajuda de alguém se possível
> A situação é a seguinte:
> Ex:
> Tabela teste;
> campos: id_inscricao integer, id_agenda integer.
>
> insert into teste (id_inscricao, id_agenda) values (1,1);
> insert into teste (id_inscricao, id_agenda) values (2,1);
> insert into teste (id_inscricao, id_agenda) values (3,1);
>
> insert into teste (id_inscricao, id_agenda) values (1,2);
> insert into teste (id_inscricao, id_agenda) values (2,2);
> insert into teste (id_inscricao, id_agenda) values (3,2);
>
> Notaram que o id_inscricao muda de acordo com o valor passado por id_agenda
> ?
> Quero que se a agenda for 1 então incremente o valor para o id_inscricao
> sequencialmente.
> Se for 2, a mesma coisa.
> Se for 3 ou 4 ou 5.... reinicie a contagem e comece do 1 novamente e assim
> por diante
>
> Obrigado
>



-- 
Att.
Beto Lima
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a