From 131ec5f070a0bfa7a02f621d03ba82a26bb3cdcf Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Tue, 3 May 2022 00:50:12 +0200 Subject: [PATCH] Add update trigger on department and state table --- createdatabase.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/createdatabase.py b/createdatabase.py index 6ae117c..7b87b08 100755 --- a/createdatabase.py +++ b/createdatabase.py @@ -244,4 +244,30 @@ if __name__ == '__main__': ) conn.commit() 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()