From 2f3dd6d58064e4c87f51c66fc4244d8ae06f4c52 Mon Sep 17 00:00:00 2001 From: Etienne Trimaille Date: Fri, 29 Nov 2019 13:31:40 +0100 Subject: [PATCH] WIP postgresql notify --- postgresql_in_qgis.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/postgresql_in_qgis.md b/postgresql_in_qgis.md index 72b960c..f2b8fd3 100644 --- a/postgresql_in_qgis.md +++ b/postgresql_in_qgis.md @@ -138,3 +138,34 @@ CREATE INDEX ON nom_du_schema.nom_de_la_table USING GIST (geom); Si on souhaite automatiser la création des indexes pour toutes les tables qui n'en ont pas, on peut utiliser une fonction, décrite dans la partie [Fonctions utiles](./utils.md) Continuer vers l'[Import des données dans PostgreSQL](./import_data.md) + +### Utiliser les notifications PostgreSQL + +Dans les propriétés de la couche vecteur, activer les notifications avec le message `chef_lieu`. + +```sql +DROP VIEW IF EXISTS buffer_chef_lieu; +CREATE VIEW buffer_chef_lieu AS +SELECT + id, nom, + ST_BUFFER(geom, 1000) AS geom +FROM chef_lieu; + +CREATE OR REPLACE FUNCTION qgis_notify() + RETURNS trigger AS +$BODY$ + BEGIN + PERFORM pg_notify('qgis', 'chef_lieu'); + RETURN NULL; + END; +$BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +CREATE TRIGGER qgis_trigger + AFTER INSERT OR UPDATE + ON chef_lieu + FOR EACH ROW + EXECUTE PROCEDURE qgis_notify(); + +```