Accueil - PostgreSQL Tout afficher

Démarrer et arrêter PostGreSQL en ligne de commande

Wakonda - PostgreSQL Posté le 6 mars 2023

Sur Windows, voici plusieurs commandes utiles à l'utilisation de PostGreSQL.

Démarrer PostGres :

pg_ctl -D "C:\Program Files\PostgreSQL\9.6\data" start

Arrêter le serveur :

pg_ctl -D "C:\Program Files\PostgreSQL\9.6\data" stop

Redémarrer le serveur :

pg_ctl -D "C:\Program Files\PostgreSQL\9.6\data" restart
Lire ...

PostGreSQL - Rechercher une valeur dans toutes les tables

Wakonda - PostgreSQL Posté le 1 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 1 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)

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

PostGreSQL - Redémarrer une séquence

Wakonda - PostgreSQL Posté le 21 mai 2019

Dans une table PostGreSQL, lorsque vous définissez un champ "id" qui se trouve être une clé primaire en auto incrémente, cette valeur va automatiquement s'incrémenter à chaque fois que vous enregistrerez un nouvel élément dans la table.

Pour que cette opération soit possible, PostGreSQL va enregistrer le dernier "id" dans une séquence. Pour afficher l'ensemble des séquences de votre base de données, vous pouvez utiliser la requête SQL suivante :

SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';

 Pour afficher le dernier numéro utilisé dans une séquence :

SELECT last_value FROM nom_de_la_sequence;

Pour réinitialiser la séquence, on utilisera cette requête :

ALTER SEQUENCE nom_de_la_sequence RESTART 100;

Après avoir lancé cette requête, le prochain enregistrement dans votre table aura pour "id", le nombre "100".

Lire ...

PostGreSQL – Supprimer toutes tables d'une base

Wakonda - PostgreSQL Posté le 4 septembre 2018

Avec PostGresSQL, deux simples requêtes suffisent à supprimer toutes les tables d'une base de données sans qu'il n'y ait d'erreur. Bien évidemment, il faudra les utiliser avec précaution et en toute connaissance de cause !

drop schema public cascade;
create schema public;

 

Lire ...

PostGreSQL – Tester une requête SQL avant de l’appliquer

Wakonda - PostgreSQL, SQL Posté le 30 août 2018

Avant de lancer une requête SQL pour ajouter, supprimer, ou mettre à jour des données dans une base, il peut être utile de la tester afin d’éviter au maximum les désagréments qui pourraient survenir.

Pour ce faire, PostGresSQL nous fournit un mécanisme connut sous le nom de Transaction.

Dans l’exemple ci-dessous, on enveloppe une requête de suppression « DELETE » entre les mots-clés « BEGIN » et « ROLLBACK ». La requête de suppression va s’exécuter sans altérer la base de données. On peut ainsi mesurer les conséquences de la requête sur nos données :

BEGIN;

DELETE FROM article WHERE is_active = false;

SELECT title FROM article WHERE is_active = false;

ROLLBACK;

SELECT title FROM article WHERE is_active = false;

 

Lire ...

Rechercher

Tags

Publicité

Suivez-nous

Aidez-nous !