"Row-level triggers fired BEFORE can return null to signal the trigger
manager to skip the rest of the operation for this row (i.e., subsequent
triggers are not fired, and the INSERT/UPDATE/DELETE does not occur for this
row)"

    fonte: http://www.postgresql.org/docs/8.3/static/plpgsql-trigger.html

Como num trigger de DELETE, o parametro "NEW" é nulo, retorna-lo cancela a
remocao. Comportamento coerente com a documentacao.

2009/2/9 Vinicius A. Santos <[email protected]>

> Pessoal, temos 2 tabelas, lotes e itens_lotes, fizemos uma chave
> estrangeira na tabela de itens_lotes como ON DELETE CASCADE
> referenciando a tabela de lotes.
>
> Fizemos uma trigger na tabela de Itens_lotes BEFORE DELETE com RETURN
> NEW, e quando apagamos um registro na tabela de lotes, os registros
> referenciados na tabela de itens_lotes ficam órfãos, mesmo tendo a
> constraint de chave estrangeira.
>
> Eu sei que é errado usar o NEW em operações de delete(foi um erro de
> digitação), mas mesmo assim, os registros da tabela itens_lotes podem
> ficar órfãos com o RETURN NEW ?? Se eu usar RETURN OLD tudo funciona
> como deveria.
>
> Testamos no PostgreSQL 8.2.5 e 8.3.5
>
> Obrigado
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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

Responder a