Schema
Owner
albenard
Descriptions
Cette procédure stockée permet de remplacer un animal et ses données associées par un autre animal.
Options
Option | Value |
---|---|
Returns |
boolean |
Language |
|
Parameters |
animal_officiel varchar animal_synonyme varchar |
Definition
CREATE OR REPLACE FUNCTION public.ps_animal_synonyme (
animal_officiel varchar,
animal_synonyme varchar
)
RETURNS boolean AS
$span$
DECLARE
id_animal_officiel integer; -- identifiant de l'animal officiel (ani_id)
id_animal_synonyme integer; -- identifiant de l'animal synonyme (ani_id)
BEGIN
-- Récupération ID animal officiel
SELECT ani_id FROM t_animal_ani WHERE lower(ani_etiq) = lower(animal_officiel) INTO id_animal_officiel;
IF NOT found THEN
raise notice 'Erreur - Nom animal introuvable : % ', animal_officiel;
return FALSE;
END IF;
-- Récupération ID animal synonyme
SELECT ani_id FROM t_animal_ani WHERE lower(ani_etiq) = lower(animal_synonyme) INTO id_animal_synonyme;
IF NOT found THEN
raise notice 'Erreur - Nom animal introuvable : % ', animal_synonyme;
return FALSE;
END IF;
-- Mise à jour des équipements
UPDATE tj_equipement_animal_eqt_ani_eqa
SET eqa_ani_id = id_animal_officiel
WHERE eqa_ani_id = id_animal_synonyme;
-- Mise à jour des captures
UPDATE t_capture_cap
SET cap_ani_id = id_animal_officiel
WHERE cap_ani_id = id_animal_synonyme;
-- Mise à jour des campagnes de positionnements
UPDATE t_campagne_pos_cpos
SET cpos_ani_id = id_animal_officiel
WHERE cpos_ani_id = id_animal_synonyme;
-- Mise à jour des données d'activité
UPDATE t_activite_act
SET act_ani_id = id_animal_officiel
WHERE act_ani_id = id_animal_synonyme;
-- Mise à jour des données d'activité en anomalie
UPDATE t_activ_anomalie_ano
SET ano_ani_id = id_animal_officiel
WHERE ano_ani_id = id_animal_synonyme;
-- Suppression de l'animal synonyme
DELETE from t_animal_ani
WHERE ani_id = id_animal_synonyme;
RAISE NOTICE 'Animal % remplacé par %', animal_synonyme, animal_officiel;
RETURN true;
EXCEPTION
WHEN OTHERS THEN
raise notice 'Erreur : % %', sqlstate, sqlerrm;
return false;
END;
$span$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
COMMENT ON FUNCTION public.ps_animal_synonyme(animal_officiel varchar, animal_synonyme varchar)
IS 'Cette procédure stockée permet de remplacer un animal et ses données associées par un autre animal.';
This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 13/03/2014 13:23 |