Man Linux: Main Page and Category List


       ALTER DATABASE - change a database


       ALTER DATABASE name [ [ WITH ] option [ ... ] ]

       where option can be:

           CONNECTION LIMIT connlimit

       ALTER DATABASE name RENAME TO newname

       ALTER DATABASE name OWNER TO new_owner

       ALTER DATABASE name SET TABLESPACE new_tablespace

       ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }
       ALTER DATABASE name SET configuration_parameter FROM CURRENT
       ALTER DATABASE name RESET configuration_parameter


       ALTER DATABASE changes the attributes of a database.

       The  first  form  changes certain per-database settings. (See below for
       details.) Only the database owner  or  a  superuser  can  change  these

       The  second  form  changes  the name of the database. Only the database
       owner or a superuser can rename a database; non-superuser  owners  must
       also  have  the  CREATEDB  privilege.  The  current  database cannot be
       renamed. (Connect to a different database if you need to do that.)

       The third form changes the owner of the database.  To alter the  owner,
       you  must  own  the database and also be a direct or indirect member of
       the new owning role, and you must have the CREATEDB  privilege.   (Note
       that superusers have all these privileges automatically.)

       The  fourth  form changes the default tablespace of the database.  Only
       the database owner or a superuser can  do  this;  you  must  also  have
       create privilege for the new tablespace.  This command physically moves
       any tables or indexes in the database’s old default tablespace  to  the
       new tablespace. Note that tables and indexes in non-default tablespaces
       are not affected.

       The  remaining  forms  change  the  session  default  for  a   run-time
       configuration  variable  for  a  PostgreSQL  database.  Whenever  a new
       session is subsequently started in that database, the  specified  value
       becomes  the  session  default  value.   The  database-specific default
       overrides whatever setting is present in postgresql.conf  or  has  been
       received  from  the postgres command line. Only the database owner or a
       superuser can change the  session  defaults  for  a  database.  Certain
       variables cannot be set this way, or can only be set by a superuser.


       name   The name of the database whose attributes are to be altered.

              How many concurrent connections can be made to this database. -1
              means no limit.

              The new name of the database.

              The new owner of the database.

              The new default tablespace of the database.


       value  Set  this  database’s  session   default   for   the   specified
              configuration  parameter to the given value. If value is DEFAULT
              or, equivalently, RESET is used, the  database-specific  setting
              is removed, so the system-wide default setting will be inherited
              in new sessions. Use RESET ALL to  clear  all  database-specific
              settings.  SET FROM CURRENT saves the session’s current value of
              the parameter as the database-specific value.

              See SET [set(7)] and in the documentation for  more  information
              about allowed parameter names and values.


       It  is also possible to tie a session default to a specific role rather
       than to a database;  see  ALTER  ROLE  [alter_role(7)].   Role-specific
       settings override database-specific ones if there is a conflict.


       To disable index scans by default in the database test:

       ALTER DATABASE test SET enable_indexscan TO off;


       The ALTER DATABASE statement is a PostgreSQL extension.


       CREATE DATABASE [create_database(7)], DROP DATABASE [drop_database(7)],
       SET [set(7)], CREATE TABLESPACE [create_tablespace(7)]