PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Antes e Depois acionam no mesmo evento? Preencher uma tabela filha PostgreSQL


Se entendi corretamente, você está tentando:
  1. Parar a inserção e substituí-la por uma inserção em outra tabela (determinada pelo acionador)
  2. Atualizar uma tabela de resumo (delete /insert ) para apontar para a nova linha.

Seu problema é que 1 impede que 2 aconteça? Isso é lógico porque você interrompeu a inserção e também interrompeu qualquer processamento na inserção.

Então, para resolver isso, você tem algumas opções (as opções 1 e 2 são semelhantes)
  1. Chame update_object_last_known_position() de insert_position() e ter apenas um gatilho
  2. Crie um método wrapper para ambos insert_position() e update_object_last_known_position() e ter apenas um acionador.
  3. Coloque o gatilho para update_object_last_known_position() em todas as tabelas que insert_position() pode inserir.