Łuk*_*ski 6 postgresql postgresql-9.6 postgresql-10
在 Postgres 中,可以创建您自己的配置参数,例如在会话或事务期间持续存在的“cookie”。
这是这样完成的:
SELECT set_config(setting_name, new_value, is_local)
or
SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
Run Code Online (Sandbox Code Playgroud)
本地应该仅在事务期间持续存在,但即使在事务之后它也会影响配置参数 - 而不是所述参数无法识别,它现在将被设置为空字符串。
如何在不重新连接的情况下再次无法识别该参数?
这不起作用:
SELECT set_config('settings.myapp.value', null, true);
RESET settings.myapp.value;
Run Code Online (Sandbox Code Playgroud)
这不会返回 NULL,而是给出空字符串:
SELECT current_setting('settings.myapp.value', true);
Run Code Online (Sandbox Code Playgroud)
我当然可以解决这个问题,但我想知道是否可以以某种方式将配置参数的状态恢复到“仅事务”更改之前的状态。
SELECT nullif(current_setting('settings.myapp.value', true), '');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2402 次 |
| 最近记录: |