Rename script + remove triggers, view, procedure
All theses part will be moving on another script
This commit is contained in:
parent
87402c06fc
commit
1699aa747f
1 changed files with 0 additions and 98 deletions
|
@ -142,72 +142,6 @@ if __name__ == '__main__':
|
|||
PRIMARY KEY (com,id_indicateur,date_debut)
|
||||
);""",
|
||||
{'schema':AsIs(args.schema_name)})
|
||||
|
||||
curs.execute("""
|
||||
CREATE OR REPLACE VIEW %(schema)s.view_indicateur_dep AS
|
||||
SELECT id_departement, d.dep, d.ncc, s.id_indicateur, s.date_debut, SUM(s.VALEUR)
|
||||
FROM %(schema)s.departement d
|
||||
INNER JOIN %(schema)s.commune c ON c.dep = d.dep
|
||||
INNER JOIN %(schema)s.statistique s ON s.com = c.com
|
||||
GROUP BY id_departement,d.dep, s.date_debut, d.ncc, s.id_indicateur
|
||||
ORDER BY id_indicateur;""",
|
||||
{'schema':AsIs(args.schema_name)})
|
||||
|
||||
curs.execute("""
|
||||
CREATE OR REPLACE VIEW %(schema)s.view_indicateur_reg AS
|
||||
SELECT id_region, r.reg, r.ncc, s.id_indicateur, s.date_debut, SUM(s.valeur)
|
||||
FROM %(schema)s.region r
|
||||
INNER JOIN %(schema)s.departement d ON d.reg = r.reg
|
||||
INNER JOIN %(schema)s.commune c ON c.dep = d.dep
|
||||
INNER JOIN %(schema)s.statistique s ON s.com = c.com
|
||||
GROUP BY id_region, r.reg, s.date_debut, r.ncc, s.id_indicateur
|
||||
ORDER BY id_indicateur;""",
|
||||
{'schema':AsIs(args.schema_name)})
|
||||
|
||||
curs.execute("""
|
||||
ALTER TABLE %(schema)s.region
|
||||
ADD COLUMN IF NOT EXISTS population INT;
|
||||
""",
|
||||
{'schema':AsIs(args.schema_name)})
|
||||
|
||||
curs.execute("""
|
||||
ALTER TABLE %(schema)s.departement
|
||||
ADD COLUMN IF NOT EXISTS population INT;
|
||||
""",
|
||||
{'schema':AsIs(args.schema_name)})
|
||||
|
||||
curs.execute("""
|
||||
CREATE OR REPLACE PROCEDURE %(schema)s.PRC_POP_REG_DEP()
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
DECLARE
|
||||
REC RECORD;
|
||||
BEGIN
|
||||
|
||||
FOR REC IN (SELECT id_departement, ncc, SUM valeur
|
||||
FROM %(schema)s.view_indicateur_dep v
|
||||
WHERE id_indicateur = 1
|
||||
AND date_debut = '2018') LOOP
|
||||
|
||||
UPDATE %(schema)s.departement
|
||||
SET population = REC.valeur
|
||||
WHERE id_departement = REC.id_departement;
|
||||
|
||||
END LOOP;
|
||||
|
||||
FOR REC IN (SELECT reg, SUM(population) valeur
|
||||
FROM DEPARTEMENT d
|
||||
GROUP BY REG) LOOP
|
||||
|
||||
UPDATE %(schema)s.region
|
||||
SET population = REC.VALEUR
|
||||
WHERE reg = REC.reg;
|
||||
|
||||
END LOOP;
|
||||
END;
|
||||
$$;""",
|
||||
{'schema':AsIs(args.schema_name)})
|
||||
conn.commit()
|
||||
t.stop()
|
||||
|
||||
t.start('Import data from csv files')
|
||||
|
@ -245,36 +179,4 @@ if __name__ == '__main__':
|
|||
conn.commit()
|
||||
t.stop()
|
||||
|
||||
t.start('Call procedure')
|
||||
with conn.cursor() as curs:
|
||||
curs.execute("CALL %(schema)s.PRC_POP_REG_DEP()",
|
||||
{'schema':AsIs(args.schema_name)}
|
||||
)
|
||||
t.stop()
|
||||
|
||||
t.start('Add Modify Trigger')
|
||||
with conn.cursor() as curs:
|
||||
curs.execute("""
|
||||
CREATE OR REPLACE FUNCTION %(schema)s.block_maj_reg_dep()
|
||||
RETURNS TRIGGER AS $bloquage$
|
||||
BEGIN
|
||||
RAISE EXCEPTION
|
||||
'Mise à jour non autorisé';
|
||||
END;
|
||||
$bloquage$ language plpgsql;
|
||||
|
||||
CREATE TRIGGER TRG_BLOQ_MAJ_REG
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON %(schema)s.region
|
||||
|
||||
FOR EACH ROW EXECUTE PROCEDURE %(schema)s.block_maj_reg_dep();
|
||||
|
||||
CREATE TRIGGER TRG_BLOQ_MAJ_DEP
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON %(schema)s.departement
|
||||
|
||||
FOR EACH ROW EXECUTE PROCEDURE %(schema)s.block_maj_reg_dep();
|
||||
""",
|
||||
{'schema':AsIs(args.schema_name)})
|
||||
conn.commit()
|
||||
|
||||
t.stop()
|
||||
conn.close()
|
Loading…
Add table
Add a link
Reference in a new issue