init depot renew
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
|
||||
from pycen import con
|
||||
# import pycen
|
||||
|
||||
s1 = '''create trigger get_communnes_intersects after
|
||||
insert
|
||||
or
|
||||
delete
|
||||
or
|
||||
update
|
||||
on
|
||||
sites.r_sites_geom for each row execute function sites.refresh_site_comm()'''
|
||||
|
||||
s2 = '''CREATE OR REPLACE FUNCTION sites.refresh_site_comm()
|
||||
RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $function$
|
||||
BEGIN
|
||||
with t1 as (
|
||||
SELECT
|
||||
id,
|
||||
nom_com,
|
||||
insee_com,
|
||||
geom
|
||||
FROM flux_geo.vm_communes_isere
|
||||
),
|
||||
t2 as (SELECT
|
||||
s.id_site,
|
||||
json_object_agg(t1.insee_com,t1.nom_com) all_comm,
|
||||
max(s.date) date,
|
||||
s.geom
|
||||
-- FROM s1 s, t1
|
||||
FROM sites.r_sites_geom s, t1
|
||||
WHERE st_intersects(s.geom,t1.geom)
|
||||
and s.id_site = NEW.id_site
|
||||
GROUP BY s.id_site,s.geom,s.date
|
||||
ORDER BY s.id_site, s.date DESC)
|
||||
UPDATE sites.sites SET nom_com_json = t2.all_comm
|
||||
FROM t2
|
||||
WHERE id = t2.id_site;
|
||||
IF NOT FOUND THEN
|
||||
UPDATE sites.sites SET nom_com = null WHERE id = t2.id_site;
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$function$
|
||||
;'''
|
||||
with con.begin() as cnx:
|
||||
cnx.execute(s1)
|
||||
cnx.execute(s2)
|
||||
Reference in New Issue
Block a user