2010/4/4 Bruno Carneiro <[email protected]>:
>
> Estou com outro problema. Tenho uma função em pgsql que é usada tanto no
> update quanto no insert de uma tabela. Estou testando o insert e estou
> recebendo um erro quando tento avaliar se a variável OLD é null.
>
> ERRO:  record "old" is not assigned yet
> DETAIL:  The tuple structure of a not-yet-assigned record is indeterminate.
> CONTEXT:  PL/pgSQL function "upd_ins_despesa" line 11 at IF
>
> CREATE OR REPLACE FUNCTION veiculo.upd_ins_despesa() RETURNS trigger AS $$
> DECLARE
>
> vidvenda  int;
> BEGIN
>        SELECT idvenda FROM veiculo.veiculo
>                WHERE idveiculo=NEW.idveiculo
>                INTO vidvenda;
>
>        IF (vidvenda IS NOT NULL) THEN
>
>                IF (OLD IS NOT NULL) THEN  // LINHA 11 AQUI!
>                        IF ( OLD.montante == NEW.montante) THEN
>                                RETURN NEW;
>                        END IF;
>                END IF;
>
>                PERFORM venda.calculosVenda(NEW.idvenda);
>
>        END IF;
>
>        RETURN NEW;
> END;
> $$ LANGUAGE plpgsql;
>
> Neste link
> http://www.postgresql.org/docs/8.4/static/plpgsql-trigger.html
>
> OLD
>
>    Data type RECORD; variable holding the old database row for
> UPDATE/DELETE operations in row-level triggers. This variable is NULL in
> statement-level triggers and for INSERT operations.
>
> Se não me falha o ingles, quando estou inserindo um registro o valor da
> variavel OLD é null. Como posso fazer essa verificação?
>
>
> Mudei a linha 11 para
>
> IF (TG_OP == 'UPDATE') THEN

IF TG_OP = 'UPDATE' THEN
(um único sinal de igual, ele está reclamando que não existe o operador ==)


>
> Mas recebo outro erro:
>
> ERRO:  operador não existe: text == unknown
> LINE 1: SELECT  ( $1  == 'UPDATE')
>                      ^
> HINT:  Nenhum operador corresponde com o nome e o(s) tipo(s) de argumento(s)
> informados. Você precisa adicionar conversões de tipo explícitas.
> QUERY:  SELECT  ( $1  == 'UPDATE')
> CONTEXT:  PL/pgSQL function "upd_ins_despesa" line 11 at IF
> --
> View this message in context: 
> http://old.nabble.com/Problema-com-trigger-em-update-tp28129160p28133672.html
> Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
>


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

Responder a