insert_username
用于跟踪谁更改了表的函数
概览
版本
| PG18 | PG17 | PG16 | PG15 | PG14 |
|---|
| 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
安装
提示:这是 PostgreSQL 内核自带的 contrib 扩展
CREATE EXTENSION insert_username;
用法
insert_username: 记录修改表行的用户
提供将当前用户名存储到指定文本列的触发器函数。
CREATE EXTENSION insert_username;
触发器函数
| 函数 | 说明 |
|---|
insert_username() | 将当前用户名存储到指定列 |
参数:用于存储用户名的文本列名。
示例
CREATE TABLE audit_log (
id serial PRIMARY KEY,
data text,
modified_by text
);
-- 记录插入者
CREATE TRIGGER set_insert_user
BEFORE INSERT ON audit_log
FOR EACH ROW
EXECUTE FUNCTION insert_username('modified_by');
-- 记录更新者
CREATE TRIGGER set_update_user
BEFORE UPDATE ON audit_log
FOR EACH ROW
EXECUTE FUNCTION insert_username('modified_by');
INSERT INTO audit_log (data) VALUES ('test');
SELECT modified_by FROM audit_log; -- 返回当前用户