Des fonctionnalités PostgreSQL peu connues
(hakibenita.com)-
Savoir combien de lignes ont été modifiées/ajoutées lors d’un Insert on Conflict (Upsert) :
xmax -
Accorder des permissions sur une colonne spécifique
-
Correspondance multi-motifs :
SIMILAR TOou expression régulière~ -
Connaître la valeur actuelle d’une séquence sans l’incrémenter :
pg_sequence_last_value() -
Pour utiliser ensemble du SQL multiligne et
\COPY:TEMPORARY VIEWouCOPYavec\g -
Empêcher l’affectation d’une valeur à une clé générée automatiquement : spécifier
GENERATED ALWAYSlors de la création de la table (au lieu deGENERATED BY DEFAULT) -
Créer une table pivot : utiliser
pandas.pivot_table,\crosstabviewou l’extensiontablefunc -
Dollar Quoting
→ tous les caractères entre $$ et $$ sont interprétés comme une chaîne
→ il est possible d’utiliser un tag à l’intérieur, comme $JSON$ / $function$
→ en ajoutant ::jsonb, on peut créer rapidement un objet jsonb
- Ajouter des commentaires aux objets de la base :
COMMENT ON TABLE/COLUMN, et avec le Dollar Quoting il est aussi possible d’ajouter de longues descriptions sous forme de chaîne
→ écriture : COMMENT ON TABLE sale IS 'Sales made in the system';
→ affichage : \d+ sale
- Enregistrer l’historique séparément pour chaque base
→ \set HISTFILE ~/.psql_history- :DBNAME
-
Mettre l’autocomplétion en majuscules :
\set COMP_KEYWORD_CASE upper -
Introduire une pause :
pg_sleep(secondes),pg_sleep_for('4 minutes 14 seconds') -
Récupérer la première/dernière ligne d’un groupe sans sous-requête :
DISTINCT ON (colonne_du_groupe) -
Générer un UUID sans l’extension
uuid-ossp:gen_random_uuid()génère un UUID version 4 -
Générer des données aléatoires reproductibles : utiliser la même graine avec
setseed() -
Ajouter une contrainte sans valider immédiatement les données existantes : lors du
ALTER, ajouter d’abord uniquement la contrainte avecNOT VALID, puis valider les données existantes séparément avecALTER VALIDATE -
Utiliser une fonctionnalité proche des Synonym d’Oracle : modifier
search_path(utile pour les migrations sans interruption) -
Trouver des plages qui se chevauchent : opérateur
OVERLAPS
4 commentaires
Est-ce qu’il n’y a pas un peu trop de nouvelles sur PostgreSQL qui arrivent sur GeekNews ?! (Je plaisante.)
Notre produit utilise lui aussi principalement pg, donc nous ne pouvons qu’être reconnaissants. :)
C’est parce que Postgres est très en vogue en ce moment..!?
Postgres, c’est le meilleur.
Je suis d'accord.