Para crear una base de datos, el servidor PostgreSQL debe estar funcionando (consulte la Sección 18.3).

Las bases de datos se crean con el comando SQL CREATE DATABASE:

CREATEDATABASE name;

donde name sigue las reglas habituales para los identificadores SQL. El rol actual se convierte automáticamente en el propietario de la nueva base de datos. Es privilegio del propietario de una base de datos eliminarla más tarde (lo que también elimina todos los objetos que contiene, incluso si tienen un propietario diferente).

La creación de bases de datos es una operación restringida. Consulte la Sección 21.2 para saber cómo otorgar el permiso.

Dado que necesita estar conectado al servidor de la base de datos para ejecutar el CREATE DATABASE comando, la pregunta sigue siendo cómo el primero Se puede crear una base de datos en cualquier sitio dado. La primera base de datos siempre la crea el initdb comando cuando se inicializa el área de almacenamiento de datos. (Ver Sección 18.2.) Esta base de datos se llama postgres. Así que para crear la primera común base de datos a la que te puedes conectar postgres.

Una segunda base de datos, template1, también se crea durante la inicialización del clúster de la base de datos. Cada vez que se crea una nueva base de datos dentro del clúster, template1 es esencialmente clonado. Esto significa que cualquier cambio que haga en template1 se propagan a todas las bases de datos creadas posteriormente. Debido a esto, evite crear objetos en template1 a menos que desee que se propaguen a cada base de datos recién creada. Más detalles aparecen en la Sección 22.3.

Para su comodidad, hay un programa que puede ejecutar desde el shell para crear nuevas bases de datos, createdb.

createdb dbname

createdb no hace magia. Se conecta a la postgres base de datos y emite el CREATE DATABASE comando, exactamente como se describe arriba. La página de referencia createdb contiene los detalles de la invocación. Tenga en cuenta que createdb sin ningún argumento creará una base de datos con el nombre de usuario actual.

Nota

capitulo 20 contiene información sobre cómo restringir quién puede conectarse a una base de datos determinada.

A veces, desea crear una base de datos para otra persona y hacer que se convierta en el propietario de la nueva base de datos, para que pueda configurarla y administrarla por sí mismo. Para lograr eso, use uno de los siguientes comandos:

CREATEDATABASE dbname OWNER rolename;

desde el entorno SQL, o:

createdb -O rolename dbname

de la concha Solo el superusuario puede crear una base de datos para otra persona (es decir, para un rol del que no es miembro).

Anterior Arriba próximo
22.1. Visión de conjunto Casa 22.3. Bases de datos de plantillas