PL/pgSQL effectuer vs exécuter

Quelles sont les différence entre effectuer et de les exécuter sur PL/pgSQL?

À partir de la notice:

Parfois, il est utile pour évaluer une expression ou une requête SELECT, mais jeter le résultat, par exemple lors de l'appel d'une fonction qui a des effets secondaires mais pas de résultats utiles de la valeur. Pour ce faire, dans PL/pgSQL, utilisez la déclaration.

Mais, quand je suis en train d'essayer quelque chose comme:

perform 'create table foo as (select 1)';

Rien ne se passe. Bien que cette requête devrait avoir des effets secondaires (création de la table), et le résultat peut être mis au rebut.

Je crois que j'ai trouvé 1 truc: pour exécuter les fonctions que je peux utiliser:

perform pg_temp.addInheritance(foo);
perform remplace select. c'est le choix d'ignorer le retour, vous ne pouvez pas select 'create table foo as (select 1)';
En d'autres termes, il ne peut apporter aucun changement à la base de données?
il peut, de la même façon select peut. ni plus ni moins. Par exemple select pg_create_restore_point('change to db'); ou sélectionnez 1 de dblink_exec('local', 'create table...') (i int)` ou

OriginalL'auteur Guy s | 2017-03-21