76 lines
2.0 KiB
MySQL
76 lines
2.0 KiB
MySQL
|
|
-- ============================================
|
||
|
|
-- 此文件由 Meoo Cloud 自动生成,请勿修改
|
||
|
|
-- This file is auto-generated by Meoo Cloud, DO NOT MODIFY
|
||
|
|
-- ============================================
|
||
|
|
|
||
|
|
|
||
|
|
CREATE OR REPLACE FUNCTION log_data_audit()
|
||
|
|
RETURNS TRIGGER LANGUAGE plpgsql AS $$
|
||
|
|
DECLARE
|
||
|
|
v_old_values JSONB;
|
||
|
|
v_new_values JSONB;
|
||
|
|
v_operation TEXT;
|
||
|
|
BEGIN
|
||
|
|
v_operation := TG_OP;
|
||
|
|
|
||
|
|
IF TG_OP = 'DELETE' THEN
|
||
|
|
v_old_values := to_jsonb(OLD);
|
||
|
|
v_new_values := NULL;
|
||
|
|
ELSIF TG_OP = 'UPDATE' THEN
|
||
|
|
v_old_values := to_jsonb(OLD);
|
||
|
|
v_new_values := to_jsonb(NEW);
|
||
|
|
ELSE
|
||
|
|
v_old_values := NULL;
|
||
|
|
v_new_values := to_jsonb(NEW);
|
||
|
|
END IF;
|
||
|
|
|
||
|
|
INSERT INTO data_audit_logs (
|
||
|
|
table_name, record_id, operation, old_values, new_values, changed_by
|
||
|
|
) VALUES (
|
||
|
|
TG_TABLE_NAME,
|
||
|
|
COALESCE(NEW.id, OLD.id),
|
||
|
|
v_operation,
|
||
|
|
v_old_values,
|
||
|
|
v_new_values,
|
||
|
|
auth.uid()
|
||
|
|
);
|
||
|
|
|
||
|
|
IF TG_OP = 'DELETE' THEN
|
||
|
|
RETURN OLD;
|
||
|
|
ELSE
|
||
|
|
RETURN NEW;
|
||
|
|
END IF;
|
||
|
|
END;
|
||
|
|
$$;
|
||
|
|
|
||
|
|
DROP TRIGGER IF EXISTS trg_audit_production_plans ON production_plans;
|
||
|
|
CREATE TRIGGER trg_audit_production_plans
|
||
|
|
AFTER INSERT OR UPDATE OR DELETE ON production_plans
|
||
|
|
FOR EACH ROW
|
||
|
|
EXECUTE FUNCTION log_data_audit();
|
||
|
|
|
||
|
|
DROP TRIGGER IF EXISTS trg_audit_inventory_records ON inventory_records;
|
||
|
|
CREATE TRIGGER trg_audit_inventory_records
|
||
|
|
AFTER INSERT OR UPDATE OR DELETE ON inventory_records
|
||
|
|
FOR EACH ROW
|
||
|
|
EXECUTE FUNCTION log_data_audit();
|
||
|
|
|
||
|
|
DROP TRIGGER IF EXISTS trg_audit_payments ON payments;
|
||
|
|
CREATE TRIGGER trg_audit_payments
|
||
|
|
AFTER INSERT OR UPDATE OR DELETE ON payments
|
||
|
|
FOR EACH ROW
|
||
|
|
EXECUTE FUNCTION log_data_audit();
|
||
|
|
|
||
|
|
DROP TRIGGER IF EXISTS trg_audit_accounts_payable ON accounts_payable;
|
||
|
|
CREATE TRIGGER trg_audit_accounts_payable
|
||
|
|
AFTER INSERT OR UPDATE OR DELETE ON accounts_payable
|
||
|
|
FOR EACH ROW
|
||
|
|
EXECUTE FUNCTION log_data_audit();
|
||
|
|
|
||
|
|
DROP TRIGGER IF EXISTS trg_audit_accounts_payable_items ON accounts_payable_items;
|
||
|
|
CREATE TRIGGER trg_audit_accounts_payable_items
|
||
|
|
AFTER INSERT OR UPDATE OR DELETE ON accounts_payable_items
|
||
|
|
FOR EACH ROW
|
||
|
|
EXECUTE FUNCTION log_data_audit();
|
||
|
|
|