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()