PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Déclenchement avant et après sur le même événement ? Remplir une table enfant PostgreSQL

Si je vous comprends bien, vous essayez de :

  1. Arrêtez l'insertion et remplacez-la par une insertion dans une autre table (déterminée par le déclencheur)
  2. Mettre à jour un tableau récapitulatif (delete /insert ) pour pointer vers la nouvelle ligne.

Votre problème est que 1 arrête 2 de se produire ? C'est logique, car vous avez arrêté l'insertion, donc vous avez également arrêté tout traitement sur l'insertion.

Donc, pour résoudre ce problème, vous avez plusieurs options (les options 1 et 2 sont similaires)

  1. Appelez update_object_last_known_position() de insert_position() et n'ont qu'un seul déclencheur
  2. Créer une méthode wrapper pour les deux insert_position() et update_object_last_known_position() et n'ont qu'un seul déclencheur.
  3. Mettez le déclencheur pour update_object_last_known_position() sur toutes les tables qui insert_position() pourrait s'insérer dans.