Accueil - PostgreSQL

Tout afficher

PostGreSQL - Rechercher une valeur dans toutes les tables

Wakonda - PostgreSQL

Posté le 1er novembre 2019


Je vous présente ici une fonction PostGreSQL permettant de rechercher une valeur donnée dans l'ensemble des champs de toutes les tables d'une base de données.

Fonction :

CREATE OR REPLACE FUNCTION search_whole_db(_like_pattern text)
  RETURNS TABLE(_tbl regclass, _ctid tid) AS
$func$
BEGIN
   FOR _tbl IN
      SELECT c.oid::regclass
      FROM   pg_class c
      JOIN   pg_namespace n ON n.oid = relnamespace
      WHERE  c.relkind = 'r'                           -- only tables
      AND    n.nspname !~ '^(pg_|information_schema)'  -- exclude system schemas
      ORDER BY n.nspname, c.relname
   LOOP
      RETURN QUERY EXECUTE format(
         'SELECT $1, ctid FROM %s t WHERE t::text ~~ %L'
       , _tbl, '%' || _like_pattern || '%')
      USING _tbl;
   END LOOP;
END
$func$  LANGUAGE plpgsql;

Utilisation :

SELECT * FROM search_whole_db('mypattern');

 

Lire ...

PostGreSQL - Supprimer des doublons

Wakonda - PostgreSQL

Posté le 1er novembre 2019


Voici une requête qui vous permettra de supprimer les doublons dans une base de données PostGresSQL :

DELETE FROM dups a USING (
      SELECT MIN(ctid) as ctid, key
        FROM dups 
        GROUP BY key HAVING COUNT(*) > 1
      ) b
      WHERE a.key = b.key 
      AND a.ctid <> b.ctid

 

Lire ...

Installer PostgreSQL sous Debian 8 (Jessie)

PostgreSQL

Posté le 25 mai 2019


Pour utiliser PostgreSQL 10 sous le système d'exploitation Debian 8, on lancera successivement les lignes de commande suivantes :

Importez la clé de signature PostgreSQL

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add -

Ajoutez les informations du référentiel PostgreSQL au fichier /etc/apt/sources.list.d/postgresql.list.

echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list

Une fois que vous avez ajouté le référentiel PostgreSQL, exécutez la commande suivante pour mettre à jour l'index du référentiel.

sudo apt-get update

Installer PostgreSQL avec la commande apt-get

sudo apt install -y postgresql-10

Plus d'informations

Remarque :

Si, en lançant ces lignes de commande (dans votre Dockerfile), vous tombez sur l'erreur suivante :

Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/InRelease  Unable to find expected entry 'main/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)

Vous devez rajouter cette ligne de commande avec le "apt-get update" :

RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list

 

Lire ...

Rechercher

Tags

Publicité

Suivez-nous