CREATE TRIGGER cli_gatilho
after INSERT
ON clientes
FOR EACH ROW
if new.codigo = 0 then
EXECUTE PROCEDURE cli_gatilho();
end if
Lembrando que tem que preencher o valor de codigo com zero na aplicação.
Em 25/03/08, Adenilton Batista da Silva <[EMAIL PROTECTED]>
escreveu:
>
> Na criação desse gatilho, o erro abaixo é retornado:
>
> ERRO: erro de sintaxe em ou próximo a "IF"
> SQL state: 42601
>
>
> Todavia para que funcione o gatilho de inserção de autonumeração o que eu
> preciso (eu acho) é somente ler as transações ainda não commitadas;
> para tanto eu tentei fazer desta forma:
>
> CREATE OR REPLACE FUNCTION cli_gatilho()
> RETURNS "trigger" AS
> $BODY$
> DECLARE
> V_CODIGO CLIENTES.CODIGO%TYPE;
> BEGIN
> -- SELECIONAR ULTIMO CODIGO
> *SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
> * SELECT INTO V_CODIGO MAX(CLIENTES.CODIGO) FROM CLIENTES;
> NEW.CODIGO:=V_CODIGO +1;
> RETURN NEW;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
>
> O problema é que ao tentar inserir os dados na aplicação obtive o erro
> informando que SET TRANSACTION deve ser executado antes de uma consulta, mas
> acho que esse é o caminho...
>
> Atenciosamente,
>
>
>
> *ADENILTON Batista da Silva *
> Index Informática LTDA
> (79)3431-3234 / 9142-0886
> * [EMAIL PROTECTED]
>
>
> ------------------------------
> Date: Tue, 25 Mar 2008 08:13:24 -0300
> From: [EMAIL PROTECTED]
> To: [email protected]
> Subject: Re: [pgbr-geral] Campos com Autoincremento (Como resolver o
> problema dos Buracos)
>
> Não seria o caso de :
> **
> *Gatilho: *
> CREATE TRIGGER cli_gatilho
> after INSERT
> ON clientes
> FOR EACH ROW
> if codigo = 0 then
> EXECUTE PROCEDURE cli_gatilho();
>
> Eu faria assim na aplicação cliente sempre colocaria o valo 0 (zero) na
> chave veja 0 <> null.
> e só depois do commit pegava o código. Não testei mas acho que dá certo.
>
> --
> Silfar Goulart
>
>
> ------------------------------
> Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live
> Search Maps! Experimente já!<http://www.livemaps.com.br/index.aspx?tr=true>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
--
Silfar Goulart
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral