21 lines
727 B
MySQL
21 lines
727 B
MySQL
|
|
-- Enforce immutable tracecoin ledger: no UPDATE/DELETE allowed.
|
||
|
|
|
||
|
|
CREATE OR REPLACE FUNCTION prevent_tracecoin_ledger_mutation()
|
||
|
|
RETURNS trigger AS $$
|
||
|
|
BEGIN
|
||
|
|
RAISE EXCEPTION 'tracecoin_ledger is immutable; % is not allowed', TG_OP;
|
||
|
|
END;
|
||
|
|
$$ LANGUAGE plpgsql;
|
||
|
|
|
||
|
|
DROP TRIGGER IF EXISTS trg_prevent_tracecoin_ledger_update ON tracecoin_ledger;
|
||
|
|
CREATE TRIGGER trg_prevent_tracecoin_ledger_update
|
||
|
|
BEFORE UPDATE ON tracecoin_ledger
|
||
|
|
FOR EACH ROW
|
||
|
|
EXECUTE FUNCTION prevent_tracecoin_ledger_mutation();
|
||
|
|
|
||
|
|
DROP TRIGGER IF EXISTS trg_prevent_tracecoin_ledger_delete ON tracecoin_ledger;
|
||
|
|
CREATE TRIGGER trg_prevent_tracecoin_ledger_delete
|
||
|
|
BEFORE DELETE ON tracecoin_ledger
|
||
|
|
FOR EACH ROW
|
||
|
|
EXECUTE FUNCTION prevent_tracecoin_ledger_mutation();
|