Comment puis-je déclarer des variables dans pgAdmin
Si je suis dans le psql terminal puis je peux déclarer et utiliser une variable comme ceci:
\set message_id soifsdaofisd.gmail.com;
select * from emails where message_id = ':message_id';
Comment puis-je faire dans pgAdmin?
J'obtiens une erreur lorsque j'ai jamais essayer ce dans pgAdmin:
D'ERREUR: erreur de syntaxe sur ou près de "CALAdkA4YC0" LIGNE 3: définir message_id
soifsdaofisd.gmail.com.
OriginalL'auteur dagda1 | 2014-05-09
Vous devez vous connecter pour publier un commentaire.
\set
est une fonctionnalité de psql (interactive terminal de ligne de commande) et ne sont pas disponibles dans pgAdmin.PostgreSQL n'utilise normalement pas de variables dans la plaine SQL. Vous utilisez PL/pgSQL code dans un bloc anonyme (
déclaration) ou dans un la fonction.
Cependant, vous peut (ab)utilisation options personnalisées, pour le côté serveur "variables", indépendante de client que vous utilisez en ce moment:
Détails dans cette réponse:
Variables définies par l'utilisateur de PostgreSQL
Et il y a aussi pgScript, un local de scripts d'extension dans le pgAdmin outil de requête, où vous pouvez utiliser des variables locales, comparable à ce que vous pouvez faire dans psql. Par la documentation:
Détails dans le pgScript langage de script de référence.
declare @mytbl, @maxid; set @mytbl = 'sometable'; set @maxid = someid; select count(*) from @mytbl where id <= @maxid;
quand je clique sur "exécuter PgScript" ce imprime juste l'instruction SQL avec les variables remplacées avec des valeurs dans la fenêtre des Messages, mais ne retourne pas les résultats.Nvm, a trouvé la réponse ici: postgresql.org/message-id/[email protected] Besoin de régler la sortie à une variable et l'imprimer, donc comme ceci:
declare @mytbl, @maxid; set @mytbl = 'sometable'; set @maxid = 2500; set @res = select count(*) from @mytbl where id <= @maxid; print @res;
OriginalL'auteur Erwin Brandstetter