<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://testwww.postgresql.fr/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://testwww.postgresql.fr/feed.php">
        <title>Communauté francophone de PostgreSQL support:trucs_et_astuces</title>
        <description></description>
        <link>https://testwww.postgresql.fr/</link>
        <image rdf:resource="https://testwww.postgresql.fr/_media/favicon.ico" />
       <dc:date>2026-05-01T17:58:21+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/accueil?rev=1351517457&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/controler_l_utilisation_de_hot_a_partir_de_la_8.3?rev=1224082295&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/debugguer_les_procedures_plpgsql?rev=1271928107&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/deplacer_toutes_les_fonctions_dans_un_schema_separe?rev=1271928611&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/diviser_un_texte_en_plusieurs_lignes?rev=1224082548&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/filtrer_des_tuples_a_intervalle_temporel_regulier?rev=1224082252&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/lister_les_tables_filles_d_une_table?rev=1224082618&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/modifier_les_droits_d_un_utilisateur_sur_toutes_les_tables_d_un_schema?rev=1224082672&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/ne_faire_un_rollback_que_de_la_derniere_commande?rev=1291640783&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/nombre_de_jours_dans_chaque_mois?rev=1224082087&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/nombre_de_mois_contenus_entre_deux_dates?rev=1224082130&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/nombre_de_semaines_entre_deux_dates_quelconques?rev=1224082185&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/recuperer_le_resultat_d_une_requete_executee_dans_une_procedure_stockee?rev=1224082703&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/regrouper_ses_fonctions_plpgsql_dans_un_schema?rev=1271928318&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/remplir_une_table_de_type_calendrier_avec_tous_les_mercredi_de_l_annee?rev=1351517771&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/retablir_la_sauvegarde_et_la_restauration?rev=1224082368&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/sommes_intermediaires?rev=1224081983&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/supprimer_les_fonctions_a_l_interieur_d_un_schema?rev=1271776491&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/tableau_accumulateur?rev=1224082047&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/taille_des_tables_toast?rev=1224082439&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/timestamp_postgresql_et_timestamp_unix?rev=1224082216&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_facilement_la_taille_d_une_table_de_ses_index_et_son_nombre_de_tuples?rev=1298991027&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_le_1er_element_disponible_dans_une_liste_de_numeriques?rev=1224082743&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_le_nom_de_l_objet_associe_a_un_oid?rev=1224082503&amp;do=diff"/>
                <rdf:li rdf:resource="https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_tous_les_enregistrements_filles_d_un_enregistrement?rev=1271777247&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://testwww.postgresql.fr/_media/favicon.ico">
        <title>Communauté francophone de PostgreSQL</title>
        <link>https://testwww.postgresql.fr/</link>
        <url>https://testwww.postgresql.fr/_media/favicon.ico</url>
    </image>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/accueil?rev=1351517457&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-10-29T14:30:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:accueil</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/accueil?rev=1351517457&amp;do=diff</link>
        <description>Trucs &amp; Astuces

agrégats et statistiques

Ah, les plaisirs des moving average et autres sommes intermédiaires...

	*  Sommes intermédiaires
		*  Tableau Accumulateur

fonctions sur les dates

Un chapitre entièrement consacré à la manipulation de dates.

	*  Nombre de jours dans chaque mois
		*  Nombre de mois contenus entre deux dates
		*  Nombre de semaines entre deux dates quelconques
		*  timestamp PostgreSQL et timestamp Unix
		*  Filtrer des tuples à intervalle temporel régulier
		*…</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/controler_l_utilisation_de_hot_a_partir_de_la_8.3?rev=1224082295&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:51:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:controler_l_utilisation_de_hot_a_partir_de_la_8.3</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/controler_l_utilisation_de_hot_a_partir_de_la_8.3?rev=1224082295&amp;do=diff</link>
        <description>Contrôler l'utilisation de HOT, à partir de la 8.3

Si comme moi vous avez prévu un fort besoin d'utiliser HOT sur vos tables (UPDATE fréquents sur des colonnes non indexées), vous aurez sûrement réglé un fillfactor largement inférieur à 100. Mais comment contrôler que HOT profite réellement de l'opportunité théorique ? La requête suivante permet de contrôler HOT:</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/debugguer_les_procedures_plpgsql?rev=1271928107&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-04-22T11:21:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:debugguer_les_procedures_plpgsql</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/debugguer_les_procedures_plpgsql?rev=1271928107&amp;do=diff</link>
        <description>Afin de débugguer du plpgsql, beaucoup de personnes emploie les “RAISE NOTICE” “RAISE DEBUG”. Il existe
cependant une méthode plus facile et plus conviviale avec pgadmin3 (&lt;http://blog.guillaume.lelarge.info/index.php/post/2007/04/26/Le-debugger-PL/pgsql-de-pgAdmin&gt;)

D'abord installer dans contrib, ce module &lt;http://pgfoundry.org/frs/?group_id=1000175&amp;release_id=1225&gt;; puis suivre la notice d'installation</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/deplacer_toutes_les_fonctions_dans_un_schema_separe?rev=1271928611&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-04-22T11:30:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:deplacer_toutes_les_fonctions_dans_un_schema_separe</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/deplacer_toutes_les_fonctions_dans_un_schema_separe?rev=1271928611&amp;do=diff</link>
        <description>Pour déplacer toutes fonctions d'un schema (SOURCE) vers un autre (DEST) en une fois. En imaginant, que vous avez créé d'abord le schema DEST 


psql -U mon_user DATABASE -t -c &quot;select 'alter function '||nspname||'.'||proname||' set schema DEST;' 
  from pg_proc join pg_namespace as m on 
  (pronamespace=m.oid) where nspname = lower('SOURCE')&quot; &gt; move_them.sql

psql -U mon_user DATABASE -e -f a.sql</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/diviser_un_texte_en_plusieurs_lignes?rev=1224082548&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:55:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:diviser_un_texte_en_plusieurs_lignes</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/diviser_un_texte_en_plusieurs_lignes?rev=1224082548&amp;do=diff</link>
        <description>Diviser un texte en plusieurs lignes

Que faire si vous avez une chaîne, que vous voulez la séparer en plusieurs morceaux suivant un pattern et que vous voulez récupérer chaque morceau sur une ligne ?

Commencer par créer la fonction suivante :</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/filtrer_des_tuples_a_intervalle_temporel_regulier?rev=1224082252&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:50:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:filtrer_des_tuples_a_intervalle_temporel_regulier</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/filtrer_des_tuples_a_intervalle_temporel_regulier?rev=1224082252&amp;do=diff</link>
        <description>Filtrer des tuples à intervalle temporel régulier

Conditions préalables

Imaginons une table contenant plusieurs colonnes dont une est une estampille. Par exemple la table mesures :


CREATE TABLE mesures (
     estampille TIMESTAMP WITH TIMEZONE PRIMARY KEY,
     valeur DOUBLE PRECISION);</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/lister_les_tables_filles_d_une_table?rev=1224082618&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:56:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:lister_les_tables_filles_d_une_table</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/lister_les_tables_filles_d_une_table?rev=1224082618&amp;do=diff</link>
        <description>Lister les tables filles d'une table

On remplacera “element” par la table père, on pourra bien sûr récupérer les informations de la table pg_class ( c ) ou pg_inherits (i) en fonction des besoins...


SELECT relname

FROM pg_catalog.pg_class c,

     pg_catalog.pg_inherits i

WHERE i.inhparent=(select oid from pg_class where relname='element');</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/modifier_les_droits_d_un_utilisateur_sur_toutes_les_tables_d_un_schema?rev=1224082672&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:57:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:modifier_les_droits_d_un_utilisateur_sur_toutes_les_tables_d_un_schema</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/modifier_les_droits_d_un_utilisateur_sur_toutes_les_tables_d_un_schema?rev=1224082672&amp;do=diff</link>
        <description>Modifier les droits d'un utilisateur sur toutes les tables d'un schéma

Ci-dessous une requête qui permet de composer un script permettant d'affecter les droits SELECT sur toutes les tables du schéma public :


select 'GRANT SELECT ON '||table_schema||'.'||table_name||' TO mon_user;'
from   information_schema.tables
where  table_type='BASE TABLE'
and    table_schema='public';</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/ne_faire_un_rollback_que_de_la_derniere_commande?rev=1291640783&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-12-06T14:06:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:ne_faire_un_rollback_que_de_la_derniere_commande</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/ne_faire_un_rollback_que_de_la_derniere_commande?rev=1291640783&amp;do=diff</link>
        <description>Souvent vous devez des manipulations avec psql, probablement qu'en tant que personne prudente vous utilisiez cette commande


\set AUTOCOMMIT OFF


Le problème est que si vous tapez mal une commande, tout ce qui précédait sera perdu 

exemple


 UPDATE TOTO set col1='Nouvelle valeur' where pk_toto=1;
 UPDATE TOTO set col1='Nouvelle valeur' where pk_toto=2;
insert into TOTO (pk_toto,col1) value (5,'Nouvelle ligne');</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/nombre_de_jours_dans_chaque_mois?rev=1224082087&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:48:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:nombre_de_jours_dans_chaque_mois</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/nombre_de_jours_dans_chaque_mois?rev=1224082087&amp;do=diff</link>
        <description>Nombre de jours dans chaque mois

La requête suivante permet de connaître pour chaque mois d'une période donnée (ici de l'année courante) son nombre de jours.


select to_char(month, 'FMMonth YYYY') as month,

       date_part('day',month + '1 month - 1 day'::interval) as lastday

from (

  select (date_part('year', current_date) || '-' || m || '-01')::date as month

  from   generate_series(1, 12) m) months;</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/nombre_de_mois_contenus_entre_deux_dates?rev=1224082130&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:48:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:nombre_de_mois_contenus_entre_deux_dates</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/nombre_de_mois_contenus_entre_deux_dates?rev=1224082130&amp;do=diff</link>
        <description>Nombre de mois contenus entre deux dates

Cela se fait avec les deux fontions suivantes :

create function extract_months(interval) returns integer language sql

  as $f$

    select 12 * extract(year from $1)::integer

           + extract(month from $1)::integer

$f$;

create function months_between(date,date) returns integer language sql

  as $f$

    select extract_months(age($2,$1))

$f$;</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/nombre_de_semaines_entre_deux_dates_quelconques?rev=1224082185&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:49:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:nombre_de_semaines_entre_deux_dates_quelconques</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/nombre_de_semaines_entre_deux_dates_quelconques?rev=1224082185&amp;do=diff</link>
        <description>Nombre de semaines entre deux dates quelconques

Cette fois-ci il s'agit donc de trouver le nombre de semaines entre deux dates quelconques. Ce qui rend la solution un poil compliquée, c'est que toutes les années n'ont pas le même nombre de semaines (52*7 ça donne que 364 jours).</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/recuperer_le_resultat_d_une_requete_executee_dans_une_procedure_stockee?rev=1224082703&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:58:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:recuperer_le_resultat_d_une_requete_executee_dans_une_procedure_stockee</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/recuperer_le_resultat_d_une_requete_executee_dans_une_procedure_stockee?rev=1224082703&amp;do=diff</link>
        <description>Récupérer le résultat d'une requête exécutée dans une procédure stockée

En php on peut utiliser directement une requête pour obtenir un recordset.

Cependant si l'on veux récupérer un recordset via une procédure stockée -- pour appliquer des traitements sur des paramètres avant d'exécuter la requête par exemple</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/regrouper_ses_fonctions_plpgsql_dans_un_schema?rev=1271928318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-04-22T11:25:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:regrouper_ses_fonctions_plpgsql_dans_un_schema</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/regrouper_ses_fonctions_plpgsql_dans_un_schema?rev=1271928318&amp;do=diff</link>
        <description>Afin de pouvoir “dumper” facilement toutes vos fonctions, il suffit de les regrouper dans un schema séparé, ce schema fonctionnera comme un namespace. Pour appeler les fonctions, soit vous utilisez les noms complets (schema.function) soit vous changez au niveau de la session ou du server le</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/remplir_une_table_de_type_calendrier_avec_tous_les_mercredi_de_l_annee?rev=1351517771&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-10-29T14:36:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:remplir_une_table_de_type_calendrier_avec_tous_les_mercredi_de_l_annee</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/remplir_une_table_de_type_calendrier_avec_tous_les_mercredi_de_l_annee?rev=1351517771&amp;do=diff</link>
        <description>Remplir une table de type calendrier avec tous les mercredi de l'année

Ici, on cherche à pré-remplir une table de type “calendrier” avec toutes les dates correspondant à un mercredi, et pour une année entière.


insert into 
calendrier  (..., ..., date_jour,...)
select ..., ..., jours.jour, ...
from 
(select jour from (select ('2012-01-01'::date + (d||' day')::interval)::date as jour 
 from generate_series(0,365) d) j 
 where extract(dow from jour)=3) jours;</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/retablir_la_sauvegarde_et_la_restauration?rev=1224082368&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:52:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:retablir_la_sauvegarde_et_la_restauration</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/retablir_la_sauvegarde_et_la_restauration?rev=1224082368&amp;do=diff</link>
        <description>Rétablir la sauvegarde et la restauration

Bonjour,

La version 1.6.0 de pgadmin sous Windows ne permet pas d'utiliser par défaut les outils de sauvegarde et de restauration de PostgreSQL à savoir pg_dump.exe et pg_restore.exe. La solution à ce défaut est de rajouter dans la variable PATH de Windows le chemin d'accès vers le répertoire de pgadmin à savoir par défaut</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/sommes_intermediaires?rev=1224081983&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:46:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:sommes_intermediaires</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/sommes_intermediaires?rev=1224081983&amp;do=diff</link>
        <description>Sommes intermédiaires

Un exemple qui nous viens tout droit du site &lt;http://www.udel.edu/evelyn/SQL-Class3/SQL3_Stat.html&gt; .

Il s'agit de calculer pour chaque ligne de résultat la somme des éléments déjà affichés jusque là, sans pour autant modifier la requête d'une quelconque autre façon.

L'idée est d'utiliser une jointure sur la même table, et de limiter cette jointure aux tuples déjà pris en compte jusque-là. Vous aurez donc à adapter le code suivant à vos données, bien sûr, mais aussi à vo…</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/supprimer_les_fonctions_a_l_interieur_d_un_schema?rev=1271776491&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-04-20T17:14:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:supprimer_les_fonctions_a_l_interieur_d_un_schema</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/supprimer_les_fonctions_a_l_interieur_d_un_schema?rev=1271776491&amp;do=diff</link>
        <description>Supprimer les fonctions à l'intérieur d'un schéma

Trouvé sur un des forums, cette astuce qui mérite de figurer dans le cookbook.

Pour supprimer toutes les fonctions d'un schéma, on peut utiliser la commande suivante, en shell :


psql -U MON_USER MA_BASE -t -P format=unaligned -c &quot;\df MON_SCHEMA.*&quot;|awk -F '|' '{if (NF &gt; 0 ) print &quot;drop function &quot;$2&quot;(&quot;$4&quot;) cascade;&quot;;}' | psql -U MON_USER MA_BASE</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/tableau_accumulateur?rev=1224082047&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:47:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:tableau_accumulateur</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/tableau_accumulateur?rev=1224082047&amp;do=diff</link>
        <description>Tableau Accumulateur

Plutôt que de faire une somme, on peut avoir besoin de cumuler l'ensemble des valeurs différentes d'un GROUP BY dans un tableau. On peut à cet effet utiliser l'agrégat suivant :


CREATE AGGREGATE array_acc (
BASETYPE = anyelement,
SFUNC = array_append,
STYPE = anyarray,
INITCOND = '{}'
);</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/taille_des_tables_toast?rev=1224082439&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:53:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:taille_des_tables_toast</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/taille_des_tables_toast?rev=1224082439&amp;do=diff</link>
        <description>Taille des tables TOAST

La requête suivante permet d'afficher la taille des tables de TOAST de votre système, pour celles dont la taille est supérieure à 0 octets. On utilise une sous-requête dans la clause FROM (cf. queries-table-expressions) afin de récupérer les informations brutes voulues, puis on les met en forme dans le SELECT en utilisant entre autres</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/timestamp_postgresql_et_timestamp_unix?rev=1224082216&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:50:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:timestamp_postgresql_et_timestamp_unix</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/timestamp_postgresql_et_timestamp_unix?rev=1224082216&amp;do=diff</link>
        <description>timestamp PostgreSQL et timestamp Unix

Pour convertir d'un timestamp PostgreSQL vers un timestamp Unix :


select extract(epoch from now())::bigint;

date_part
------------
1162822549
(1 ligne)


Pour convertir d'un timestamp Unix vers un timestamp PostgreSQL :</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_facilement_la_taille_d_une_table_de_ses_index_et_son_nombre_de_tuples?rev=1298991027&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-03-01T15:50:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:trouver_facilement_la_taille_d_une_table_de_ses_index_et_son_nombre_de_tuples</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_facilement_la_taille_d_une_table_de_ses_index_et_son_nombre_de_tuples?rev=1298991027&amp;do=diff</link>
        <description>Trouver facilement la taille d'une table, de ses index et son nombre de tuples

On a besoin parfois d'avoir rapidement la taille sur disque d'une table et le nombre d'enregistrements qu'elle contient. Pour cela, on peut utiliser la fonction pg_total_relation_size('nom de table')</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_le_1er_element_disponible_dans_une_liste_de_numeriques?rev=1224082743&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:59:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:trouver_le_1er_element_disponible_dans_une_liste_de_numeriques</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_le_1er_element_disponible_dans_une_liste_de_numeriques?rev=1224082743&amp;do=diff</link>
        <description>Trouver le 1er élément disponible dans une liste de numériques

On veut parfois trouver le 1er élément disponible dans une liste. C'est souvent le cas quand la clé primaire d'une table est un nombre mais qu'il n'est pas soumis à une séquence.. Ou alors qu'on a des trous dans la séquence et qu'on veut les combler.</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_le_nom_de_l_objet_associe_a_un_oid?rev=1224082503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-15T16:55:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:trouver_le_nom_de_l_objet_associe_a_un_oid</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_le_nom_de_l_objet_associe_a_un_oid?rev=1224082503&amp;do=diff</link>
        <description>Trouver le nom de l'objet associé à un OID

Il est possible de trouver le nom de l'objet associé à un OID en passant par la conversion regclass. Par exemple, pour connaître le nom de l'objet dont l'OID est 2613 :

guillaume=&gt; select 2613::regclass;

    regclass

----------------

 pg_largeobject

(1 ligne)</description>
    </item>
    <item rdf:about="https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_tous_les_enregistrements_filles_d_un_enregistrement?rev=1271777247&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-04-20T17:27:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>support:trucs_et_astuces:trouver_tous_les_enregistrements_filles_d_un_enregistrement</title>
        <link>https://testwww.postgresql.fr/support/trucs_et_astuces/trouver_tous_les_enregistrements_filles_d_un_enregistrement?rev=1271777247&amp;do=diff</link>
        <description>Soit le script


CREATE TABLE test_ref (
    id integer,
    tvalue text,
    tparent integer
);


INSERT INTO test_ref VALUES (1, 'Department IT', NULL);
INSERT INTO test_ref VALUES (2, 'Departement HR', NULL);
INSERT INTO test_ref VALUES (3, 'Departement fourniture IT', 1);
INSERT INTO test_ref VALUES (4, 'Departement Machine IT', 1);
INSERT INTO test_ref VALUES (5, 'Departement Server', 4);
INSERT INTO test_ref VALUES (6, 'Departemet Machine bureau', 4);
INSERT INTO test_ref VALUES (7, 'Depar…</description>
    </item>
</rdf:RDF>
