Mercurial > gemma
comparison schema/gemma.sql @ 1193:58acc343b1b6
Implemented the db stuff of the review process. Needs testing.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 16 Nov 2018 18:35:09 +0100 |
parents | e3de65179889 |
children | 7db850de0952 |
comparison
equal
deleted
inserted
replaced
1192:3afa71405b87 | 1193:58acc343b1b6 |
---|---|
547 relation regclass NOT NULL, | 547 relation regclass NOT NULL, |
548 key int NOT NULL, | 548 key int NOT NULL, |
549 UNIQUE (relation, key) | 549 UNIQUE (relation, key) |
550 ); | 550 ); |
551 | 551 |
552 CREATE FUNCTION waterway.del_import(imp_id int) RETURNS void AS | |
553 $$ | |
554 DECLARE | |
555 tmp RECORD; | |
556 BEGIN | |
557 FOR tmp IN | |
558 SELECT * FROM waterway.track_imports WHERE import_id = imp_id | |
559 LOOP | |
560 EXECUTE format('DELETE FROM %s WHERE id = $1', tmp.relation) USING tmp.key; | |
561 END LOOP; | |
562 END; | |
563 $$ | |
564 LANGUAGE plpgsql; | |
565 | |
552 CREATE FUNCTION waterway.del_import() RETURNS trigger AS | 566 CREATE FUNCTION waterway.del_import() RETURNS trigger AS |
553 $$ | 567 $$ |
554 BEGIN | 568 BEGIN |
555 EXECUTE format('DELETE FROM %I WHERE id = $1', OLD.relation) USING OLD.key; | 569 EXECUTE format('DELETE FROM %s WHERE id = $1', OLD.relation) USING OLD.key; |
556 END; | 570 END; |
557 $$ | 571 $$ |
558 LANGUAGE plpgsql; | 572 LANGUAGE plpgsql; |
559 | 573 |
560 CREATE TRIGGER delete_import AFTER DELETE ON waterway.track_imports | 574 CREATE TRIGGER delete_import AFTER DELETE ON waterway.track_imports |
561 FOR EACH ROW EXECUTE PROCEDURE waterway.del_import(); | 575 FOR EACH ROW EXECUTE PROCEDURE waterway.del_import(); |
562 | 576 |
577 | |
578 | |
563 COMMIT; | 579 COMMIT; |