2008/9/17 Mozart Hasse <[EMAIL PROTECTED]>

> (...)
> Atribuir o NEW nas triggers de BEFORE até que aparentemente funcionou,
> porém
> tive de deixar todas as triggers como AFTER para resolver outros
> problemas...


    Bom, novamente vou alertar que NUNCA, no postgresql, atribuir valores ao
registro NEW ou OLD num gatilho "AFTER" funcionará. A idéia do AFTER é fazer
alterações em outras tabelas, e não na que gerou o evento.

>
> Bom, a coisa até que andou, não tenho mais aquele erro do "record 'new' is
> not assigned yet", só que agora resta descobrir como se implementa em
> Postgres a funcionalidade da qual as triggers originais dependiam:
> identificar se a chamada atual da trigger function foi disparada de um
> UPDATE/INSERT/DELETE da aplicação ou da própria trigger...


      Tive problemas com isso uma vez, e acho que uma possivel solução seria
marcar isso numa tabela temporária pela regra da VIEW. É possível executar
mais de uma ação na regra.
 Por exemplo:

  CREATE RULE regra_do_cao ON INSERT TO [nome da view] DO INSTEAD *(*
     INSERT INTO [tabela temporaria de marcação] VALUES (...);
     INSERT INTO [tabela real] VALUES (...) *);*

   Note que as ações da regra estão entre parênteses, e separadas por ";".

   Talvez isso resolva. Boa sorte. =D

(...)
>


-- 
William Leite Araújo
Analista de Banco de Dados - QualiConsult
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a