Ignore:
Timestamp:
05/07/25 11:05:41 (3 weeks ago)
Author:
ManuelTrajcev <manueltrajcev7@…>
Branches:
master
Children:
75ea229
Parents:
d1a8cb0
Message:

deleted customer log trigger

File:
1 edited

Legend:

Unmodified
Added
Removed
  • music/triggers/customer_deletion.sql

    rd1a8cb0 rd715225  
     1DROP TRIGGER IF EXISTS trg_customer_deletion ON customer;
     2DROP FUNCTION IF EXISTS customer_deletion();
     3
    14CREATE OR REPLACE FUNCTION customer_deletion()
    25RETURNS TRIGGER AS $$
     6DECLARE
     7    total_spent NUMERIC(10, 2);
     8    invoice_count INTEGER;
    39BEGIN
    4     INSERT INTO deleted_customer_log (first_name, last_name, deleted_at)
    5     VALUES (OLD.first_name, OLD.last_name, NOW());
     10    SELECT COALESCE(SUM(total), 0), COUNT(*)
     11    INTO total_spent, invoice_count
     12    FROM invoice
     13    WHERE customer_id = OLD.customer_id;
     14
     15    INSERT INTO deleted_customer_log (
     16        first_name, last_name, deleted_at, total_spent, invoice_count
     17    )
     18    VALUES (
     19        OLD.first_name, OLD.last_name, NOW(), total_spent, invoice_count
     20    );
     21
    622    RETURN OLD;
    723END;
    824$$ LANGUAGE plpgsql;
    925
     26DROP TRIGGER IF EXISTS trg_customer_deletion ON customer;
     27
    1028CREATE TRIGGER trg_customer_deletion
    11 AFTER DELETE ON customer
     29BEFORE DELETE ON customer
    1230FOR EACH ROW
    1331EXECUTE FUNCTION customer_deletion();
Note: See TracChangeset for help on using the changeset viewer.