Regla de visibilidad de cambios en Postgres: durante la ejecuci�n de una consulta, los cambios realizados por ella misma (v�a funciones SQL O SPI, o mediante triggers) le son invisibles. Por ejemplo, en la consulta
INSERT INTO a SELECT * FROM a |
Pero hay que recordar esto sobre visibilidad en la documentaci�n de SPI:
Los cambios hechos por la consulta Q son visibles por las consultas que empiezan tras la consulta Q, no importa si son iniciados desde Q (durante su ejecuci�n) o una vez ha acabado. |
Esto es v�lido tambi�n para los triggers, as� mientras se inserta una tupla (tg_trigtuple) no es visible a las consultas en un trigger BEFORE, mientras que esta tupla (reci�n insertada) es visible a las consultas de un trigger AFTER, y para las consultas en triggers BEFORE/AFTER lanzados con posterioridad!