sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Antes y después del disparador en el mismo evento? Llenar una tabla secundaria PostgreSQL

Si te entiendo correctamente, estás tratando de:

  1. Detenga la inserción y reemplácela con una inserción en otra tabla (determinado por el disparador)
  2. Actualizar una tabla de resumen (delete /insert ) para apuntar a la nueva fila.

¿Tu problema es que 1 evita que 2 suceda? Eso es lógico porque detuvo la inserción, por lo que también detuvo cualquier procesamiento en la inserción.

Así que para solucionar esto tienes un par de opciones (las opciones 1 y 2 son similares)

  1. Llamar a update_object_last_known_position() desde insert_position() y solo tiene un gatillo
  2. Cree un método contenedor para ambos insert_position() y update_object_last_known_position() y solo tiene un gatillo.
  3. Ponga el disparador para update_object_last_known_position() en todas las tablas que insert_position() podría insertar en.