Questions marquées «plpgsql»

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".

2
Créer un index s'il n'existe pas
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: …

4
Performance de la fonction
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 …

3
Méthode idiomatique d'implémenter UPSERT dans PostgreSQL
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, …


6
Quelles sont les différences entre les «procédures stockées» et les «fonctions stockées»?
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 …






1
EXPLAIN ANALYZE ne montre aucun détail pour les requêtes à l'intérieur d'une fonction plpgsql
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 …

2
Déclencheur: déplacer les lignes supprimées vers la table d'archivage
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 …




1
Générer une exception avec un contexte
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 …

3
Que se passe-t-il si deux processus essaient de RAFRAÎCHIR LA VUE MATÉRIALISÉE DE MANIÈRE CONCURRENTE en même temps?
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 …


2
Comment obtenir un contexte d'exception pour une exception déclenchée manuellement dans PL / pgSQL?
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 …

1
Erreur: fonction set_valued appelée dans un contexte qui ne peut pas accepter un ensemble. De quoi s'agit-il?
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 …


2
Convertir les unités de mesure
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 …


2
PostgreSQL Upsert ne fonctionne pas sur la table partitionnée
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 …



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.