---
name: "alter_database"
section: "7"
platform: "linux"
package: "postgresql"
version: "7.4.7-6sarge6"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/alter_database"
---

# alter\_database(7)

change a database

## NAME

ALTER DATABASE - change a database

## SYNOPSIS

```
ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT }
ALTER DATABASE name RESET parameter
ALTER DATABASE name RENAME TO newname

```

## DESCRIPTION

**ALTER DATABASE** is used to change the attributes of a database.

The first two forms change the session default of 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 **postmaster** command line. Only the database owner or a superuser can change the session defaults for a database.

The third form changes the name of the database. Only the database owner can rename a database, and only if he has the CREATEDB privilege. The current database cannot be renamed. (Connect to a different database if you need to do that.)

## PARAMETERS

- *name*

  The name of the database whose session defaults are to be altered.

- *parameter*

  - *value*

  Set the session default for this database of the specified configuration parameter to the given value. If *value* is DEFAULT or, equivalently, RESET is used, the database-specific variable setting is removed and the system-wide default setting will be inherited in new sessions. Use RESET ALL to clear all settings.

  See SET \[[**set**(7)](/set/7.md)\] and the section called \`\`Run-time Configuration'' in the documentation for more information about allowed parameter names and values.

- *newname*

  The new name of the database.

## NOTES

Using ALTER USER \[[**alter\_user**(7)](/alter_user/7.md)\], it is also possible to tie a session default to a specific user rather than a database. User-specific settings override database-specific ones if there is a conflict.

## EXAMPLES

To disable index scans by default in the database test:

```
ALTER DATABASE test SET enable_indexscan TO off;

```

## COMPATIBILITY

The **ALTER DATABASE** statement is a PostgreSQL extension.

## SEE ALSO

ALTER USER \[[**alter\_user**(7)](/alter_user/7.md)\], CREATE DATABASE \[**create\_database**(l)\], DROP DATABASE \[**drop\_database**(l)\], SET \[**set**(l)\]
