在PostgreSQL v9.2中通过启用了自动提交的psql插入或更新表时,在第一次操作之后,search_path会发生变化。无论我是否发出明确的提交,都会发生这种情况。
非常感谢你的帮助。
$ psql -d db_name -U my_user
AUTOCOMMIT is: off
psql.bin (9.2.4)
Type "help" for help
No entry for terminal type "xterm";
using dumb terminal settings.
db_name=> show search_path;
search_path
-------------
my_user
(1 row)
db_name=> select session_user, current_user;
session_user | current_user
--------------+--------------
my_user | my_user
(1 row)
db_name=> update state_list set comments='new comments.' where id_state_list = 1;
UPDATE 1
db_name=> commit;
COMMIT
db_name=> show search_path;
search_path
-------------
auditor, public
(1 row)
db_name=> select session_user, current_user;
session_user | current_user
--------------+--------------
my_user | my_user
(1 row)
db_name=> select * from state_list;
ERROR: relation "state_list" does not exist
LINE 1: select * from state_list;
^
db_name=>
答案 0 :(得分:1)
ON UPDATE
触发器正在更改参数。
如果您需要覆盖函数中的SET
,请使用CREATE FUNCTION
语句中的search_path
子句。