Revision 07c31856
Von Bernd Bleßmann vor fast 4 Jahren hinzugefügt
sql/Pg-upgrade2/record_links_dunning_post_delete_trigger.sql | ||
---|---|---|
1 |
-- @tag: record_links_dunning_post_delete_trigger |
|
2 |
-- @description: Verknüpfte Belege für Mahnungen beim Löschen entfernen |
|
3 |
-- @depends: release_3_5_6_1 |
|
4 |
|
|
5 |
-- clean up old dangling links |
|
6 |
DELETE FROM record_links WHERE from_table = 'dunning' AND NOT EXISTS (SELECT id FROM dunning WHERE id = from_id); |
|
7 |
DELETE FROM record_links WHERE to_table = 'dunning' AND NOT EXISTS (SELECT id FROM dunning WHERE id = to_id); |
|
8 |
|
|
9 |
-- install a trigger to delete links on delete |
|
10 |
CREATE OR REPLACE FUNCTION clean_up_record_links_before_dunning_delete() RETURNS trigger AS $$ |
|
11 |
BEGIN |
|
12 |
DELETE FROM record_links |
|
13 |
WHERE (from_table = 'dunning' AND from_id = OLD.id) |
|
14 |
OR (to_table = 'dunning' AND to_id = OLD.id); |
|
15 |
RETURN OLD; |
|
16 |
END; |
|
17 |
$$ LANGUAGE plpgsql; |
|
18 |
|
|
19 |
CREATE TRIGGER before_delete_dunning_trigger |
|
20 |
BEFORE DELETE ON dunning FOR EACH ROW EXECUTE |
|
21 |
PROCEDURE clean_up_record_links_before_dunning_delete(); |
Auch abrufbar als: Unified diff
Mahnungen: DB-Trigger zum Löschen von Verknüpfungen beim Löschen einer Mahnung