PostgreSQL tiene una declaración ALTER DATABASE que se usa para modificar una base de datos existente. Las características de una base de datos, una vez creada, se pueden cambiar mediante la instrucción ALTER DATABASE.
Syntax: ALTER DATABASE target_database action;
Como muestra la sintaxis anterior, la base de datos donde se realizarán las modificaciones se menciona después de la declaración ALTER DATABASE seguida de la acción que se realizará en la base de datos.
A continuación se muestra la lista de acciones que permite PostgreSQL:
Cambiar el nombre de una base de datos:
La declaración ALTER DATABASE RENAME TO se usa para cambiar el nombre de una base de datos de la siguiente manera:
ALTER DATABASE target_database RENAME TO new_database;
Cambiar propietario de la base de datos:
La declaración ALTER DATABASE OWNER TO se usa para cambiar el propietario de una base de datos de la siguiente manera:
ALTER DATABASE target_database OWNER TO new_owner;
Es importante tener en cuenta que solo el superusuario o el propietario de la base de datos pueden realizar esta acción.
Cambiar tablespace de la base de datos:
La declaración ALTER DATABASE SET TABLESPACE se usa para cambiar el espacio de tabla predeterminado de una base de datos de la siguiente manera:
ALTER DATABASE target_database SET TABLESPACE new_tablespace;
La declaración mueve tablas e índices del tablespace heredado al nuevo.
Cambie los valores predeterminados de la sesión para las variables de configuración en tiempo de ejecución:
Por defecto, PostgreSQL carga la variable de configuración desde el archivo postgresql.conf . Este archivo contiene información sobre los roles de la base de datos y sus respectivos tipos de hash de autenticación. Esta configuración o información se puede editar mediante la declaración ALTER DATABASE SET como se muestra a continuación:
ALTER DATABASE target_database SET config_data = value;
Es importante tener en cuenta que solo el superusuario o el propietario de la base de datos pueden cambiar las variables de sesión predeterminadas para una base de datos.
Ahora, veamos un ejemplo de la implementación de la instrucción ALTER DATABASE.
Ejemplo:
iniciemos sesión como usuario de Postgres y creemos una base de datos de muestra (digamos, my_test_db ) usando el siguiente comando:
CREATE DATABASE my_test_db;
Ahora use el siguiente comando para cambiar el nombre de la base de datos de » my_test_db » a » my_renamed_db «:
ALTER DATABASE my_test_db RENAME TO my_renamed_db;
Ahora ejecute la siguiente declaración para cambiar el propietario de la base de datos » my_renamed_db » de «postgres» a «geeks», suponiendo que el rol «geeks» ya existe.
ALTER DATABASE my_renamed_db OWNER TO geeks;
Si el rol «geeks» no existe, créelo usando la siguiente declaración:
CREATE ROLE geeks VALID UNTIL 'infinity';
Ahora cambie el espacio de tabla predeterminado de my_renamed_db de pg_default a geeks_default , asumiendo que el espacio de tabla geeks_default ya existe.
ALTER DATABASE my_renamed_db SET TABLESPACE geeks_default;
Si el geeks_defaulttablespace no existe, puede crearlo usando la siguiente declaración:
CREATE TABLESPACE geeks_default OWNER geeks LOCATION E'C:\\pgdata\\geeks';
Ahora desactive la variable de configuración escape_string_warning usando los siguientes comandos:
ALTER DATABASE my_renamed_db SET escape_string_warning TO off;
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA