PL / pgSQL est le langage procédural par défaut du système de base de données PostgreSQL. Les questions à propos de PL / pgSQL devraient également être étiquetées "PostgreSQL".
Je travaille sur une fonction qui me permet d'ajouter un index s'il n'existe pas. Je rencontre un problème auquel je ne parviens pas à obtenir une liste d’index à comparer. Des pensées? Ceci est un problème similaire à celui de la création de colonne qui est résolu avec ce code: …
Venant d’un arrière-plan MySQL, dans lequel les performances des procédures stockées (ancien article) et la facilité d’utilisation sont discutables, j’évalue PostgreSQL pour un nouveau produit destiné à mon entreprise. L’une des choses que je voudrais faire est de déplacer une partie de la logique d’application dans les procédures stockées. C’est …
J'ai lu différentes UPSERTimplémentations de PostgreSQL, mais toutes ces solutions sont relativement anciennes ou relativement exotiques (en utilisant le CTE inscriptible , par exemple). Et je ne suis tout simplement pas un expert en psql pour savoir immédiatement si ces solutions sont anciennes, car elles sont bien recommandées ou (bien, …
Cette question ne concerne pas bytea v. Oid v. Blobs v. Gros objets, etc. J'ai une table contenant un integerchamp de clé primaire et un byteachamp. J'aimerais entrer des données sur le byteaterrain. Cela peut vraisemblablement être fait par l’une des PL/langues, et j’envisagerai peut-être de le faire PL/Pythondans le …
Ainsi, un commentaire de cette question mentionne qu'il existe une légère différence entre "Stored Procedrues" et "Stored Funtions" dans PostgreSQL. Le commentaire est lié à un article de Wikipédia, mais certains ne semblent pas s’appliquer (par exemple, ils peuvent être utilisés dans une SELECTdéclaration). La syntaxe elle-même semble être un …
Dans Postgres, les requêtes préparées et les fonctions définies par l'utilisateur sont-elles équivalentes en tant que mécanisme de protection contre l'injection SQL ? Y a-t-il des avantages particuliers dans une approche par rapport à l'autre?
J'ai besoin d'attribuer des valeurs à 2 variables comme ci-dessous dans la fonction Postgres. a := select col1 from tbl where ... b := select col2 from tbl where ... Comment puis-je attribuer 2 valeurs à 2 variables dans une commande de ligne? Comme a,b := select col1,col2 from tbl …
J'ai un système où je ne peux pas contrôler la conception de certaines tables (répliquées via Slony-I), et j'ai donc une série de ce que nous appelons des «tables fantômes», où j'extrais des informations des tables répliquées et le stocker dans le formulaire traité dont j'ai besoin, tout en supprimant …
Quelqu'un peut-il résumer les différences entre: http://www.postgresql.org/docs/9.1/static/xfunc-sql.html et http://www.postgresql.org/docs/9.1/static/plpgsql.html ? Points principaux: différences de conception étant donné une famille problématique, commodité d'utilisation problèmes politiques
Il est possible lors de l' utilisation du pgadminou plsqlpour obtenir une prise d'un plan de requête pour une instruction SQL exécutée à l' intérieur d' un u ser d efined f Onction (UDF) à l' aide EXPLAIN. Alors, comment puis-je obtenir le plan de requête pour une invocation particulière …
J'utilise une fonction PL / pgSQL dans PostgreSQL 9.3 avec plusieurs requêtes complexes à l'intérieur: create function f1() returns integer as $$ declare event tablename%ROWTYPE; .... .... begin FOR event IN SELECT * FROM tablename WHERE condition LOOP EXECUTE 'SELECT f2(event.columnname)' INTO dummy_return; END LOOP; ... INSERT INTO ... FROM …
J'ai une petite table (~ 10 lignes) appelée restrictionsdans ma base de données PostgreSQL, où les valeurs sont supprimées et insérées quotidiennement. Je voudrais avoir un tableau appelé restrictions_deleted, où chaque ligne supprimée restrictionssera stockée automatiquement. Puisqu'il restrictionsa un identifiant de série, il n'y aura pas de doublons. Comment écrire …
Compte tenu de cette configuration dans Postgres 9.4 actuel (à partir de cette question connexe ): CREATE TABLE foo (ts, foo) AS VALUES (1, 'A') -- int, text , (7, 'B'); CREATE TABLE bar (ts, bar) AS VALUES (3, 'C') , (5, 'D') , (9, 'E'); Il y a aussi …
J'expérimente actuellement un peu avec PL / pgSQL et je veux savoir s'il existe une façon plus élégante de faire quelque chose comme ça: select c.data into data from doc c where c.doc_id = id and c.group_cur > group_cur order by c.id desc limit 1; EXCEPTION WHEN NO_DATA_FOUND THEN select …
J'essaie de renvoyer plusieurs enregistrements en utilisant le type de données RECORD, est-il possible d'ajouter à RECORD et d'ajouter / ajouter une nouvelle valeur à chaque itération à ce RECORD. c'est-à-dire que je veux ajouter à recce qui recdevient un ensemble de lignes lorsque la boucle est terminée, que je …
Lorsque PostgreSQL lève une exception, il y a une ligne "CONTEXT" comme: ERROR: INSERT has more target COLUMNS than expressions LINE 3: ... ^ QUERY: INSERT INTO ... CONTEXT: PL/pgSQL FUNCTION "XXXXX" line 4 at SQL statement Mais quand je lève une exception, cette ligne n'est pas là. Je n'ai …
Selon les documents: CONCURRENTLY Actualisez la vue matérialisée sans verrouiller les sélections simultanées sur la vue matérialisée. (...) ... AUTRES CONTENUS ... Même avec cette option, un seul REFRESH à la fois peut s'exécuter sur une seule vue matérialisée . J'eu une fonction qui a vérifié la dernière fois de …
J'essaie de trouver des informations sur les fonctions définies par l'utilisateur de PostgreSQL dans les performances des langages procéduraux pour les tâches en temps réel. Comment se comparent-ils aux fonctions intégrées? Y a-t-il une différence (dans les frais généraux) avec la façon dont Postgres appelle / gère les fonctions plpython …
Dans Postgres, nous obtenons la "trace de pile" des exceptions en utilisant ce code: EXCEPTION WHEN others THEN GET STACKED DIAGNOSTICS v_error_stack = PG_EXCEPTION_CONTEXT; Cela fonctionne bien pour les exceptions "naturelles", mais si nous levons une exception en utilisant RAISE EXCEPTION 'This is an error!'; ... alors il n'y a …
J'utilise Postgresql 9.1, avec Ubuntu 12.04. Inspiré par la réponse de Craig à ma question Enchaînement de type setof ou un enregistrement setof je pensais aller bien à l' utilisation return query, setof recordet un générateur de série dans cette fonction plpgsql: create or replace function compute_all_pair_by_craig(id_obj bigint) returns setof …
J'ai un démon de jeu non-forking écrit en Perl , qui utilise des requêtes acync pour écrire les statistiques des joueurs dans une base de données PostgreSQL 9.3. Mais lorsque j'ai besoin de lire quelque chose dans la base de données (comme si un joueur est banni ou si le …
Vous cherchez à calculer l'unité de mesure la plus appropriée pour une liste de substances où les substances sont données dans des volumes unitaires différents (mais compatibles). Tableau de conversion des unités La table de conversion des unités stocke différentes unités et comment ces unités sont liées: id unit coefficient …
J'écris un script de configuration pour une application qui est un addon pour une autre application, donc je veux vérifier si les tables de l'autre application existent. Sinon, je veux donner à l'utilisateur une erreur utile. Cependant, je ne sais pas quel schéma contiendra les tables. DO LANGUAGE plpgsql $$ …
Ayez une table comme celle-ci: CREATE TABLE aggregated_master ( "user" BIGINT, type TEXT, date TIMESTAMP, operations BIGINT, amount NUMERIC, PRIMARY KEY ( "user", type, date ) ); Cette table est le maître dont héritent de nombreuses partitions. Les partitions sont effectuées par MOIS dans le champ DATE. Par exemple: la …
J'importe un grand nombre de fichiers volumineux dans un certain nombre de tables à partitionner à l'aide de boucles dans un bloc de code plpgsql anonyme $do$. $do$ BEGIN FOR yyyy in 2012..2016 THEN EXECUTE $$COPY table$$||yyyy||$$ FROM 'E:\data\file$$||yyyy||$$.csv DELIMITER ',' CSV;$$; END LOOP; END; $do$ LANGUAGE plpgsql L'ensemble de …
J'écris un déclencheur de validation. Le déclencheur doit valider que la somme d'un tableau est égale à un autre champ. Étant donné que j'ai de nombreuses instances de cette validation, je veux écrire une seule procédure et créer plusieurs déclencheurs, chacun avec un ensemble différent de champs à vérifier. Par …
Je me demande s'il existe un moyen de déclarer une variable de type table en PL / pgSQL pour contenir les résultats de la requête? Par exemple, comment puis-je exprimer quelque chose comme: q1 = select * from foo; q2 = select * from bar; for t1 in q1: for …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.