Definition of PostgreSQL SET
PostgreSQL SET command used to change the runtime configuration parameter from database server, there are multiple parameter which we have change during runtime using set command in PostgreSQL. Using set command we can change value of parameter at runtime, there is no need to take restart of database service to take effect of those parameter. We can set parameter value only current session which was we have connected, other user doesn’t affected to those parameter.When we set any parameter using set command, later running transaction is aborted effect of set command is disable when we rollback the transaction.
Syntax:
Below is the syntax of set command in PostgreSQL.
- SET [ LOCAL | SESSION (Set parameter at session or local level) ] configuration_parameter_name (Configuration parameter name which we have set for session or local level) { TO | = } { value (Value of parameter.) | DEFAULT }
- SET [ LOCAL | SESSION (Set parameter at session or local level) ] TIME ZONE { timezone (timezone value which we have set) | LOCAL | DEFAULT }
Below is the parameter description syntax of set command in PostgreSQL.
- Set –This is command in PostgreSQL to set parameter at session or local level. Set parameter value in PostgreSQL will affect only the current parameter sessions.This command is runtime configuration parameter which was used in PostgreSQL.
- Local –Local is define as the set command using local will take effect only the current transaction which we have running.After commit or rollback it will not take effect again, we need set is again.
- Session –Session is define as the set command using session level, it will take effect only the current session which we have running.
- Configuration parameter name –This is the name of parameter which we have setting using the set command in PostgreSQL.
- Value – This is the new value of parameter which we have setting using the set command in PostgreSQL.
- Time zone –Time zone parameter in set command is defined as set time zone for the current transaction or current session.
- Default –This is defined as set default time zone of current transaction or session. Default time zone is the server current timezone.
How Set work in PostgreSQL?
Below is the working of set command in PostgreSQL.
- Set is metadata command of PostgreSQL used to set parameter value as session or local level in PostgreSQL.
- Set command is more important and useful in PostgreSQL to set parameter to current transaction or session for user.
- We can set value of connected user as local and session level. If we set the parameter value as local then effect of this parameter is only the current transaction which we have runningon database server.
- Below example shows that after setting value of parameter using local level only valid until current transaction is running.
SHOW TIMEZONE;
SET LOCAL TIMEZONE='America/Martinique';
SHOW TIMEZONE;\
- Above example shows that if we set value of timezone at local level it will only effect only for the current transaction which we have running on the server.
- If we set the parameter value as session-level then effect of this parameter is only the current session that we have running on database server.
- Below example shows that after setting value of parameter using session-level it only valid until current session is running.
SHOW TIMEZONE;
SET SESSION TIMEZONE='America/Martinique';
SHOW TIMEZONE;
- Above example shows that if we set value of timezone at session-level it will only effect only for the current session which we have running on the server.
- By default set timezone is set at session-level. Below example shows that default level of setting parameter value are as follows.
SHOW TIMEZONE;
SET TIMEZONE='America/Martinique';
SHOW TIMEZONE;
- In above example, we have not used any level to set parameter value. We have use default level to set parameter value in PostgreSQL.
- We can also set the timezone value of integer using set command in PostgreSQL.
- There is no need to use case sensitive name of set command in PostgreSQL. We can use it as set or SET. There is no need to use case sensitive letter at the time of using set command in PostgreSQL.
- We can use same functionality of set command by using the set_config functions. Also we have same obtained by using updating system view of pg_settings.
Examples
Below is an example of set command in PostgreSQL.
Example #1 – Set the schema search path by using set command
Below example shows that set the search path of public schema in PostgreSQL.
- We have set search path of public schema name as test_schma.
SET search_path TO test_schema, public;
Example #2 – Set the timezone using set command
Below example shows that set the timezone using set command in PostgreSQL.
- We have set timezone as ‘America/Cordoba’ as session-level.
SET session TIMEZONE='America/Cordoba';
show TIMEZONE;
Example #3 – Set the parameter value using set command
Below example shows that change the parameter value at session level using set command in PostgreSQL.
- In below example we have change the value of lock_timeout parameter value as 1000 milliseconds.
set lock_timeout to 1000;
show lock_timeout;
Example #4 – Set the parameter value as default using set command
Below example shows that change the parameter value as default at session level using set command in PostgreSQL.
- In below example we have change the value of lock_timeout parameter as default.
set lock_timeout TO DEFAULT;
show lock_timeout;
Conclusion
Set command in PostgreSQL is basically used to change the parameter value. We can change the parameter value as local and session-level. If we set parameter value at session level then scope of a parameter is valid only session-level. Scope of local is valid only single transaction.
Recommended Articles
This is a guide to PostgreSQL SET. Here we discuss the introduction, How SET work in PostgreSQL? with examples respectively. You may also have a look at the following articles to learn more –