Accueil - PostgreSQL Tout afficher
Démarrer et arrêter PostGreSQL en ligne de commande
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
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
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)
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
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
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
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
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
Articles récents
- Quel est le but de l'attribut "role" en HTML ?
- Changer la couleur de l'espace réservé (placeholder)
- Attention à cet email d’arnaque !
- Supprimer un fichier d'un référentiel Git sans le supprimer du système de fichiers local
- JS - Récupérer le dernier élément d'un tableau
- JS - Prévisualiser une image avec son upload
- PHP - Convertir une chaîne de caractères en un booléen
- PHP : Vérifier si une session a déjà été démarrée
- Créer un APK ou un AAB en ligne de commandes
- L'opérateur !! en Javascript