Comment imprimer des fonctions et des déclencheurs de code source dans postgresql? s'il vous plaît laissez-moi savoir si quelqu'un connaît la requête pour afficher la fonction, déclenche le code source.
postgresql
Ganesh
la source
la source
select * from pg_trigger;
ou, si vous voulez aussi voir quelle table chaque déclencheur s'applique àselect tgrelid::regclass, tgname from pg_trigger;
FWIW `Réponses:
\df+
dans psql vous donne le code source.la source
\df
pour trouver le nom de votre fonction, puis\x
pour une sortie étendue, puis\df+ name_of_function
\df ltxtquery
.\x ON
est un must pour l'affichage transposéPour la fonction:
vous pouvez interroger la vue pg_proc, comme suit
Une autre façon est d'exécuter simplement le commont
\df
et\ef
qui peut lister les fonctions.Il affichera le code source de la fonction.
Pour les déclencheurs:
Je ne sais pas s'il existe un moyen direct d'obtenir le code source. Sachez simplement la manière suivante, peut-être que cela vous aidera!
Il vous montrera les détails du déclencheur de la table. Habituellement, un déclencheur utilise une fonction. Vous pouvez donc obtenir le code source de la fonction de déclenchement tout comme ce que j'ai indiqué ci-dessus!
la source
Voici quelques exemples de PostgreSQL-9.5
Afficher la liste:
\df+
\dy+
Définition d'affichage:
la source
\x
premier pour activer l'affichage étendu contribue également à la lisibilité.Il existe de nombreuses possibilités. Le moyen le plus simple consiste simplement à utiliser pgAdmin et à obtenir cela à partir de la fenêtre SQL. Cependant, si vous voulez obtenir cela par programme, examinez
pg_proc
et lespg_trigger
catalogues système ouroutines
et lestriggers
vues à partir du schéma d'information (c'est la méthode standard SQL, mais cela peut ne pas couvrir toutes les fonctionnalités, en particulier celles spécifiques à PostgreSQL). Par exemple:la source
SELECT view_definition FROM information_schema.views WHERE table_schema = ? AND table_name = ?
pgproc.prosrc
chroniqueUn peu plus que simplement afficher la fonction, que diriez-vous également de la fonction d'édition sur place.
\ef <function_name>
est très pratique. Il ouvrira le code source de la fonction dans un format modifiable. Vous pourrez non seulement le visualiser, mais également le modifier et l'exécuter.Juste
\ef
sans nom_fonction, vous ouvrirez le modèle CREATE FUNCTION modifiable.Pour plus d'informations -> https://www.postgresql.org/docs/9.6/static/app-psql.html
la source
\sf
nom_fonction dans psql produit le code source modifiable d'une seule fonction.Depuis https://www.postgresql.org/docs/9.6/static/app-psql.html :
la source
en plus de la réponse de @ franc, vous pouvez utiliser ceci à partir de l'interface SQL:
(tiré d'ici: http://www.postgresql.org/message-id/Pine.BSF.4.10.10009140858080.28013-100000@megazone23.bigpanda.com )
la source
Depuis la version: psql (9.6.17, serveur 11.6)
J'ai essayé toutes les réponses ci-dessus mais pour moi
df ne semble pas fonctionner pour moi.
la source