Accueil
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 ...
Rechercher
Tags
Articles récents
- PostGreSQL - Rechercher une valeur dans toutes les tables
- PostGreSQL - Supprimer des doublons
- Regex - Supprimer les espaces entre les balises HTML
- Android Studio - Logcat n'affiche plus rien
- Retour à la ligne dans une tooltip HTML
- Centrer verticalement le contenu des pseudos élements :before et :after
- Docker – Redémarrer Apache sans stopper le container
- Installer certbot-auto sur Debian Jessie
- JS - Supprimer tous les caractères d'une chaîne de caractères
- Docker - Afficher toutes les variables d'environnement d'un container