在查询过程中设置一个变量(仅对该查询有效),并能够被TRIGGER过程捕获,这种情况是否可能?
例如,我想记录查询执行者的ID(current_user始终相同)。 因此,我会像这样做:
现在,如果我运行这样的查询:
我得到了以下结果:
我希望我已经表达了这个想法......我认为这几乎是不可行的......但有没有人能帮助我?
例如,我想记录查询执行者的ID(current_user始终相同)。 因此,我会像这样做:
tbl_executor (
id PRIMARY KEY,
name VARCHAR
);
tbl_log (
executor REFERENCE tbl_executor(id),
op VARCHAR
);
tbl_other ...
CREATE TRIGGER t AFTER INSERT OR UPDATE OR DELETE ON tbl_executor
FOR EACH ROW
EXECUTE PROCEDURE (INSERT INTO tbl_log VALUES( ID_VAR_OF_THIS_QUERY ,TG_OP))
现在,如果我运行这样的查询:
INSERT INTO tbl_other
VALUES(.......) - and set ID_VAR_OF_THIS_QUERY='id of executor' -
我得到了以下结果:
tbl_log
-----------------------------
id | op |
-----------------------------
'id of executor' | 'INSERT'|
我希望我已经表达了这个想法......我认为这几乎是不可行的......但有没有人能帮助我?
create if not exists
/on commit drop
创建一个临时表,然后将数据放入其中。 - Benpg_backend_pid()
,并将数据存储在其中。 - Ben