CREAR BASE DE DATOS: crea una nueva base de datos

Sinopsis

CREATEDATABASE name
    [[WITH][ OWNER [=] user_name ][ TEMPLATE [=] template ][ ENCODING [=] encoding ][ LOCALE [=] locale ][ LC_COLLATE [=] lc_collate ][ LC_CTYPE [=] lc_ctype ][TABLESPACE[=] tablespace_name ][ ALLOW_CONNECTIONS [=] allowconn ][ CONNECTION LIMIT[=] connlimit ][ IS_TEMPLATE [=] istemplate ]]

Descripción

CREATE DATABASE crea una nueva base de datos PostgreSQL.

Para crear una base de datos, debe ser un superusuario o tener la especial CREATEDB privilegio. Consulte CREAR PAPEL.

De forma predeterminada, la nueva base de datos se creará clonando la base de datos estándar del sistema. template1. Se puede especificar una plantilla diferente escribiendo TEMPLATE name. En particular, escribiendo TEMPLATE template0, puede crear una base de datos prístina (una donde no existan objetos definidos por el usuario y donde los objetos del sistema no hayan sido alterados) que contenga solo los objetos estándar predefinidos por su versión de PostgreSQL. Esto es útil si desea evitar copiar cualquier objeto local de instalación que pueda haber sido agregado a template1.

Parámetros

name

El nombre de una base de datos para crear.

user_name

El nombre del rol del usuario que será propietario de la nueva base de datos, o DEFAULT para usar el predeterminado (es decir, el usuario que ejecuta el comando). Para crear una base de datos propiedad de otro rol, debe ser un miembro directo o indirecto de ese rol, o ser un superusuario.

template

El nombre de la plantilla a partir de la cual se creará la nueva base de datos, o DEFAULT para usar la plantilla predeterminada (template1).

encoding

Codificación del juego de caracteres para usar en la nueva base de datos. Especifique un string constante (p. ej., 'SQL_ASCII'), o un número de codificación entero, o DEFAULT para utilizar la codificación predeterminada (es decir, la codificación de la base de datos de la plantilla). Los juegos de caracteres admitidos por el servidor PostgreSQL se describen en la Sección 23.3.1. Consulte a continuación las restricciones adicionales.

locale

Este es un atajo para configurar LC_COLLATE y LC_CTYPE En seguida. Si especifica esto, no puede especificar ninguno de esos parámetros.

Propina

Las otras configuraciones locales lc_messages, lc_monetary, lc_numeric y lc_time no son fijas por base de datos y no están establecidas por este comando. Si desea que sean los predeterminados para una base de datos específica, puede usar ALTER DATABASE ... SET.

lc_collate

Orden de clasificación (LC_COLLATE) para usar en la nueva base de datos. Esto afecta el orden de clasificación aplicado a las cadenas, por ejemplo, en consultas con ORDER BY, así como el orden utilizado en los índices de las columnas de texto. El valor predeterminado es utilizar el orden de clasificación de la base de datos de la plantilla. Consulte a continuación las restricciones adicionales.

lc_ctype

Clasificación de personajes (LC_CTYPE) para usar en la nueva base de datos. Esto afecta la categorización de caracteres, por ejemplo, inferior, superior y dígito. El valor predeterminado es utilizar la clasificación de caracteres de la base de datos de la plantilla. Consulte a continuación las restricciones adicionales.

tablespace_name

El nombre del espacio de tabla que se asociará con la nueva base de datos, o DEFAULT para utilizar el espacio de tabla de la base de datos de la plantilla. Este espacio de tabla será el espacio de tabla predeterminado utilizado para los objetos creados en esta base de datos. Consulte CREAR TABLESPACE para obtener más información.

allowconn

Si false entonces nadie podrá conectarse a esta base de datos. El valor predeterminado es true, permitiendo conexiones (salvo que estén restringidas por otros mecanismos, como GRANT/REVOKE CONNECT).

connlimit

Cuántas conexiones simultáneas se pueden realizar a esta base de datos. -1 (el valor predeterminado) significa que no hay límite.

istemplate

Si true, entonces esta base de datos puede ser clonada por cualquier usuario con CREATEDB privilegios; si false (el valor predeterminado), solo los superusuarios o el propietario de la base de datos pueden clonarlo.

Los parámetros opcionales se pueden escribir en cualquier orden, no solo en el orden ilustrado anteriormente.

Notas

CREATE DATABASE no se puede ejecutar dentro de un bloque de transacciones.

Errores a lo largo de la línea de no se pudo inicializar el directorio de la base de datos Lo más probable es que estén relacionados con permisos insuficientes en el directorio de datos, un disco lleno u otros problemas del sistema de archivos.

Utilice DROP DATABASE para eliminar una base de datos.

El programa createdb es un programa contenedor de este comando, que se proporciona para su comodidad.

Los parámetros de configuración del nivel de la base de datos (establecidos mediante ALTER DATABASE) y los permisos del nivel de la base de datos (establecidos mediante GRANT) no se copian de la base de datos de la plantilla.

Aunque es posible copiar una base de datos que no sea template1 al especificar su nombre como plantilla, esto no está previsto (todavía) como un propósito general COPY DATABASE instalaciones. La principal limitación es que no se pueden conectar otras sesiones a la base de datos de la plantilla mientras se está copiando. CREATE DATABASE fallará si existe alguna otra conexión cuando se inicie; de lo contrario, las nuevas conexiones a la base de datos de la plantilla se bloquean hasta que CREATE DATABASE completa. Consulte la Sección 22.3 para obtener más información.

La codificación del juego de caracteres especificada para la nueva base de datos debe ser compatible con la configuración regional elegida (LC_COLLATE y LC_CTYPE). Si la localidad es C (o equivalente POSIX), entonces se permiten todas las codificaciones, pero para otras configuraciones regionales solo hay una codificación que funcionará correctamente. (En Windows, sin embargo, la codificación UTF-8 se puede utilizar con cualquier configuración regional). CREATE DATABASE permitirá a los superusuarios especificar SQL_ASCII codificación independientemente de la configuración regional, pero esta opción está en desuso y puede resultar en un mal comportamiento de los caracteresstring funciona si los datos que no son compatibles con la codificación de la configuración regional se almacenan en la base de datos.

La configuración de codificación y configuración regional debe coincidir con la de la base de datos de la plantilla, excepto cuando template0 se utiliza como plantilla. Esto se debe a que otras bases de datos pueden contener datos que no coinciden con la codificación especificada, o pueden contener índices cuyo orden de clasificación se ve afectado por LC_COLLATE y LC_CTYPE. Copiar esos datos daría como resultado una base de datos que estaría dañada de acuerdo con la nueva configuración. template0, sin embargo, se sabe que no contiene datos o índices que se verían afectados.

los CONNECTION LIMIT la opción solo se aplica aproximadamente; si dos nuevas sesiones comienzan aproximadamente al mismo tiempo cuando solo una conexión espacio permanece para la base de datos, es posible que ambos fallen. Además, el límite no se aplica a los superusuarios ni a los procesos de trabajo en segundo plano.

Ejemplos de

Para crear una nueva base de datos:

CREATEDATABASE lusiadas;

Para crear una base de datos sales propiedad del usuario salesapp con un espacio de tabla predeterminado de salesspace:

CREATEDATABASE sales OWNER salesapp TABLESPACE salesspace;

Para crear una base de datos music con una configuración regional diferente:

CREATEDATABASE music
    LOCALE 'sv_SE.utf8'
    TEMPLATE template0;

En este ejemplo, el TEMPLATE template0 Se requiere una cláusula si la configuración regional especificada es diferente a la de template1. (Si no es así, especificar la configuración regional explícitamente es redundante).

Para crear una base de datos music2 con una configuración regional diferente y una codificación de juego de caracteres diferente:

CREATEDATABASE music2
    LOCALE 'sv_SE.iso885915'
    ENCODING LATIN9
    TEMPLATE template0;

La configuración regional y de codificación especificada debe coincidir, o se informará un error.

Tenga en cuenta que los nombres de las configuraciones regionales son específicos del sistema operativo, por lo que es posible que los comandos anteriores no funcionen de la misma manera en todas partes.

Compatibilidad

No hay CREATE DATABASE declaración en el estándar SQL. Las bases de datos son equivalentes a los catálogos, cuya creación está definida por la implementación.

Ver también

ALTER DATABASE, DROP DATABASE

Anterior Hasta próximo
CREAR CONVERSIÓN Hogar CREAR DOMINIO