LOAD 'pg_savior'; CREATE EXTENSION IF NOT EXISTS pg_savior; NOTICE: extension "pg_savior" already exists, skipping CREATE TABLE emp (id int); INSERT INTO emp VALUES (1), (2), (3); -- UPDATE without WHERE: must error, table unchanged UPDATE emp SET id = 99; ERROR: pg_savior: UPDATE without WHERE clause is blocked HINT: Add a WHERE clause, or set pg_savior.bypass = on for this session. SELECT count(*) AS still_one FROM emp WHERE id = 1; still_one ----------- 1 (1 row) SELECT count(*) AS none_yet FROM emp WHERE id = 99; none_yet ---------- 0 (1 row) -- UPDATE with WHERE: succeeds UPDATE emp SET id = 99 WHERE id = 1; SELECT count(*) AS gone_now FROM emp WHERE id = 1; gone_now ---------- 0 (1 row) SELECT count(*) AS one_now FROM emp WHERE id = 99; one_now --------- 1 (1 row) DROP TABLE emp;