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 -0300From: [EMAIL PROTECTED]: [EMAIL
PROTECTED]: 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
_________________________________________________________________
Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o
Messenger! É GRÁTIS!
http://www.msn.com.br/emoticonpack
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral