我正在尝试创建一个 Postgres 触发器,以确保在设置列的值后,它无法更新(基本上使其成为只读)。到目前为止,我已经提出了以下草案触发器。
1) 首先,我在正确的轨道上吗?
2) 有回报价值NEW
吗?
3) 我必须original_id
以NEW.
?
CREATE FUNCTION check_id_change() RETURNS TRIGGER AS $$
BEGIN
IF OLD.original_id <> NEW.original_id THEN
RAISE EXCEPTION 'cannot change original_id';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER client_update_trigger AFTER UPDATE ON client FOR EACH ROW
EXECUTE PROCEDURE check_id_change();
Run Code Online (Sandbox Code Playgroud)