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?
obrigado a todos.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral