Olá,

2009/12/16 Alipio Dantas <[email protected]>

> Sr.
>
> Costumo dar cargas em massa com o comando copy em algumas tabelas do banco
> aqui,
>
> O problema é que as sequences não atualizam quando insiro dados desta forma
>
>
> então pensei em fazer uma trigger para fazer esta atualização....
>
>
> Com o comando:
>
> SELECT setval('pac.pac_desembolso_obra_deob_id_seq', max(deob_id)) FROM
> pac.pac_desembolso_obra;
>
> eu consigo fazer esta atualização, o problema é que não estou conseguindo
> fazer isso a partir de uma trigger
>
>
> fiz assim:
>
> create or replace function sequencia_desembolso_pac_embasa ()
>     Returns trigger as  $$
> begin
>
>  SELECT setval('pac.pac_desembolso_obra_deob_id_seq', max(deob_id)) FROM
> pac.pac_desembolso_obra;
>
> end;
>     $$ language PLPGSQL;
>
> ------------------------------------
>
> CREATE TRIGGER t_sequencia_desembolso_pac_embasa
> BEFORE INSERT ON pac.pac_desembolso_obra FOR EACH ROW ---> para cada linha
> FOR EACH STATEMENT -> para cada comando
> EXECUTE PROCEDURE sequencia_desembolso_pac_embasa()
>
>
>
> ----------------------
>
> Quando executo acusa o seguinte erro:
>
> ERROR:  query has no destination for result data
> HINT:  If you want to discard the results of a SELECT, use PERFORM instead.
> CONTEXT:  PL/pgSQL function "sequencia_desembolso_pac_embasa" line 3 at SQL
> statement
>
>
>
> repare que ele pede para eu descartar o resultado do select, mas eu quero
> executá-lo
>
> tentei colocoar o execute no lugar do select, e me acusou erro também.
>
>
> Poderiam me indicar uma direção?
>

Nesta caso você pode usar o perform porque o retorno não será relevante para
você e sim a operação de alteração do valor da sequence.

Normalmente uso exemplos parecidos com esse nos treinamentos que ministro.

>
> obrigado a todos.
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

[]s
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a