Est-il possible de savoir si une ligne d'une table a été créée par la transaction en cours (et n'est donc pas encore visible pour les autres transactions, car le la transaction est toujours active)?PostgreSQL: savoir si une ligne a été créée par la transaction en cours
Mon cas d'utilisation: J'ajoute la journalisation des événements à la base de données. Ceci est fait dans les déclencheurs de plpgsql. Une ligne dans la table des événements ressemble à ceci: (event id:serial, event action:text, count:integer:default 1)
. Maintenant, le raisonnement derrière ma question: Si une certaine ligne a été créée par cette transaction (probablement dans un autre déclencheur), je pourrais incrémenter le compte au lieu de créer une nouvelle ligne dans la table d'événements.
Quel est votre cas d'utilisation réel? Votre question crie "état de la course" et "problème d'intégrité". – spectras
Si votre code crée les lignes, pourquoi ne le faites-vous pas suivre les lignes qu'il crée? De cette façon, vous n'avez même plus à interroger la base de données, votre code peut envoyer une mise à jour immédiatement. – spectras
Ceci est fait dans ** plusieurs ** déclencheurs plpgsql.Donc, je pourrais soit garder une trace des lignes que les événements ont été créés (table temporaire? Colonne timestamp?) Ou mieux encore, trouver d'une manière ou d'une autre. D'où ma question. –