trigger.mysql 1.79 KB
Newer Older
totten's avatar
totten committed
1
-- +--------------------------------------------------------------------+
2
-- | Copyright CiviCRM LLC. All rights reserved.                        |
totten's avatar
totten committed
3
-- |                                                                    |
4 5 6
-- | This work is published under the GNU AGPLv3 license with some      |
-- | permitted exceptions and without any warranty. For full license    |
-- | and copyright information, see https://civicrm.org/licensing       |
totten's avatar
totten committed
7 8 9 10 11 12 13 14 15 16 17
-- +--------------------------------------------------------------------+

DELIMITER |

CREATE TRIGGER   civicrm_contact_ad
BEFORE DELETE ON civicrm_contact
FOR EACH ROW
BEGIN
  -- we delete the corresponding entity_id/entity_table entries
  -- from all the linked tables (note, log etc)
  DELETE FROM civicrm_note
eileen's avatar
eileen committed
18
        WHERE entity_id    = OLD.id
totten's avatar
totten committed
19 20 21 22
          AND entity_table = 'civicrm_contact';
  DELETE FROM civicrm_log
        WHERE entity_id    = OLD.id
          AND entity_table = 'civicrm_contact';
eileen's avatar
eileen committed
23
  DELETE FROM civicrm_task_status
totten's avatar
totten committed
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
        WHERE responsible_entity_id    = OLD.id
          AND responsible_entity_table = 'civicrm_contact';

END;

CREATE TRIGGER   civicrm_contribution_ad
BEFORE DELETE ON civicrm_contribution
FOR EACH ROW
BEGIN
  -- we delete the corresponding entity_id/entity_table entries
  -- from all the linked tables (note, log etc)
  DELETE FROM civicrm_note WHERE entity_id = OLD.id AND entity_table = 'civicrm_contribution';
END;

CREATE TRIGGER   civicrm_participant_ad
BEFORE DELETE ON civicrm_participant
FOR EACH ROW
BEGIN
  -- we delete the corresponding entity_id/entity_table entries
  -- from all the linked tables (note, log etc)
  DELETE FROM civicrm_note WHERE entity_id = OLD.id AND entity_table = 'civicrm_participant';
  DELETE FROM civicrm_log  WHERE entity_id = OLD.id AND entity_table = 'civicrm_participant';
END;

|

DELIMITER ;