PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Przed i po wyzwoleniu tego samego zdarzenia? Wypełnij tabelę podrzędną PostgreSQL

Jeśli dobrze rozumiem, próbujesz:

  1. Zatrzymaj wstawianie i zastąp je wstawianiem do innej tabeli (określonej przez wyzwalacz)
  2. Zaktualizuj tabelę podsumowań (delete /insert ), aby wskazać nowy wiersz.

Twój problem polega na tym, że 1 powstrzymuje 2 przed wystąpieniem? To logiczne, ponieważ zatrzymałeś wstawianie, więc zatrzymałeś również przetwarzanie na wstawce.

Aby rozwiązać ten problem, masz kilka opcji (opcje 1 i 2 są podobne)

  1. Wywołaj update_object_last_known_position() z insert_position() i mieć tylko jeden wyzwalacz
  2. Utwórz metodę opakowującą dla obu insert_position() i update_object_last_known_position() i mieć tylko jeden wyzwalacz.
  3. Ustaw wyzwalacz dla update_object_last_known_position() we wszystkich tabelach, które insert_position() może wstawić do.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porównanie opcji baz danych w chmurze dla PostgreSQL

  2. Postgres wybiera wszystkie kolumny, ale grupuje je według jednej kolumny

  3. postgresql nie pojawia się w źródle danych podczas generowania .ADO.net Entity Data Model

  4. „O” w ORDBMS:Dziedziczenie PostgreSQL

  5. niekompletne informacje z zapytania na pg_views