ALTER TABLE etiketinde bir pgsql olayı tetikleyicide hangi tablonun değiştirildiğini bilmek isterim.Postgres olay tetikleyicisinden SQL metni nasıl alınır
pg değişkenleri bunu kapsamaz ve GET STACKED DIAGNOSTICS tarafından ortaya konan değişkenleri de kapsamaz.
Kullanılabilir değişkenlerde, işlevi başlatmadan sorumlu SQL komutunun metnini görmek için tetikleme işlevinin kendisinde herhangi bir yol var mı?
ALTER TABLE base1 ADD COLUMN col1 int;
olay tetikleyici çağıran sorumlu
örneğin eğer , ardındanALTER TABLE base1 ADD COLUMN col1 int
metnin kendisini görmek için olay tetikleyici içinde herhangi bir yolu var mı?
'SEC current_query() '. Ancak, yalnızca olay tetikleyicisinin ne işe yaradığını gösteren * en üst düzey * sorgusunu gösterecektir - bir PL/PgSQL işleviyle bir "ALTER TABLE" yaptıysanız. Olay tetikleyicileri, komut hakkında daha fazla bilgi eklemek için genişletilecek, ancak şu anda 9.3/9.4'te çok sınırlı. –
@CraigRinger - teşekkürler. uzantıları dört gözle bekliyorum! –
C'de bir olay tetikleyicisi yazarsanız, ayrıca komutun ayrıştırma ağacına da sahipsiniz. http://www.postgresql.org/docs/9.3/static/event-trigger-interface.html Kesinlikle buna güvenmenin en iyi yolu değil, ancak bu özellik bulana kadar olan bir şey uzatıldı. – pozs