db_biljou_carto on db.silva.inrae.fr
Previous topic Chapter index Next topic

Function: ps_suppression_tout_stat_rel

 

 

Schema

safran

 

Owner

postgres

 

Descriptions

There is no description for function ps_suppression_tout_stat_rel

 

Options

Option

Value

Returns

integer

Language

plpgsql

Parameters

var_schema text

 

Definition

CREATE OR REPLACE FUNCTION safran.ps_suppression_tout_stat_rel (
 var_schema text
)
RETURNS integer AS
$span$
DECLARE

v record; -- Liste des vues des indicateurs relatifs et/ou statistiques
r0 record; -- Liste des tables de données des indicateurs relatifs ou statistiques
var_tmp text;
var_nb_vue integer DEFAULT 0;
var_setval integer;

BEGIN
FOR v IN
SELECT
viewname from pg_catalog.pg_views
WHERE schemaname = var_schema
ORDER BY viewname
LOOP
var_tmp := substring(v.viewname from '(_indicstat_|_indicrel_)');
IF var_tmp IS NOT NULL THEN
var_nb_vue := var_nb_vue + 1;
END IF;
END LOOP;

IF var_nb_vue > 0 THEN
RAISE EXCEPTION
'Il existe % vue(s) dans le schéma % pour les indicateurs relatifs et statistiques. Veuillez supprimer ces vues et les couches correspondantes dans GeoServer avant de relancer cette procédure.', var_nb_vue, var_schema;
END IF;

-- suppression des tables de données et des cartes des indicateurs relatifs
FOR r0 IN
SELECT DISTINCT
caind_nom_table
FROM public.t_carte_indicateur_caind
WHERE caind_casind_id IS NOT NULL
LOOP
EXECUTE 'DROP TABLE IF EXISTS '||var_schema||'.'||r0.caind_nom_table;
END LOOP;

-- suppression des cartes des indicateurs relatifs dans la table des cartes des indicateurs (contenant indicateurs élementaires et relatifs)
DELETE FROM public.t_carte_indicateur_caind WHERE caind_casind_id IS NOT NULL;
-- mise à jour de la séquence de la table des cartes des indicateurs
SELECT setval('t_carte_indicateur_caind_caind_id_seq',(SELECT MAX(caind_id) FROM public.t_carte_indicateur_caind), true) INTO var_setval;

-- suppression des tables de données des cartes des indicateurs statistiques
FOR r0 IN
SELECT DISTINCT
casind_nom_table
FROM public.t_carte_statistique_indicateur_casind
LOOP
EXECUTE 'DROP TABLE IF EXISTS '||var_schema||'.'||r0.casind_nom_table;
END LOOP;

-- suppression des cartes des indicateurs statistiques
DELETE FROM public.t_carte_statistique_indicateur_casind;
-- réinitialisation de la séquence de la table des cartes des indicateurs statistiques
ALTER SEQUENCE t_carte_statistique_indicateur_casind_casind_id_seq RESTART WITH 1;

RETURN 0;
END;
$span$
LANGUAGE
'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
PARALLEL UNSAFE
COST
100;

This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 07/12/2018 13:23
Previous topic Chapter index Next topic