Psql ile bir tetikleyicinin içeriğini nasıl gösterebilirim?


13

Tetikleyicileri listeleyebileceğimi biliyorum \dft. Ancak bir somut tetikleyiciyi nasıl görebilirim? Tetikleyicinin hangi olaylarda yürütüldüğü, hangi fonksiyonun yürütüldüğü vb. Gibi ayrıntıları bilmek istiyorum.

Yanıtlar:


24

Tamam, kendim öğrendim.

Komut \dfttetikleyicilerin kendisini (düşündüğüm gibi) göstermez, tüm tetikleyici işlevlerini (dönüş tipi tetikleyici) gösterir.

Yapabileceğiniz tetikleyiciyi görmek için \dS <tablename>, yalnızca bu tablonun sütunlarını değil, aynı zamanda bu tabloda tanımlanan tüm tetikleyicileri de gösterir.

Tetikleyici işlevin (veya herhangi bir işlevin) kaynağını göstermek için kullanın \df+ <functionname>.


1
Daha rahat okumalar için \ ef <işlev_adı> kullanın.
Brain90

7

Psql komutlarına erişiminiz yoksa, aşağıdakileri kullanabilirsiniz:

select pg_get_functiondef('functionname'::regproc);

2

Aşağıdakileri deneyebilirsiniz:

SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers ORDER BY event_object_table,event_manipulation

ya da 'testtable' adlı bir tablonun tetikleyicilerini şu şekilde gösterebilirsiniz:

SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers WHERE event_object_table='testtable' ORDER BY event_object_table,event_manipulation
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.