CREATE DATABASE

Nombre

CREATE DATABASE  --  Crea una nueva base de datos

Synopsis

CREATE DATABASE name [ WITH LOCATION = 'dbpath' ]
  

Inputs

name

Le nombre de la base de datos a crear.

dbpath

Una ubicaci�n alternativa para almacenar la nueva base de datos en el sistema de archivos. Ver m�s adelante posibles problemas.

Outputs

CREATE DATABASE

Mensaje devuelto si la orden se completa satisfactoriamente.

ERROR: user 'username' is not allowed to create/drop databases

Ha de tener el prvilegio especial CREATEDB para crear bases de datos. Ver CREAR USUARIO.

ERROR: createdb: database "name" already exists

Esto ocurre si una base de datos llamada name ya existe.

ERROR: Single quotes are not allowed in database names., ERROR: Single quotes are not allowed in database paths.

La base de datos name y dbpath no puden contener comillas simples. Esto es imprescindible para que los comandos de shell que crean el directorio de la base de datos puedan ejecutarse de modo seguro.

ERROR: The path 'xxx' is invalid.

La expansi�n del camino especificado dbpath ha fallado (ver m�s abajo el como). Compruebe la ruta que introdujo o asegurese de que la variable de entorno a la que ha hecho referencia existe.

ERROR: createdb: May not be called in a transaction block.

Si tiene una transacci�n de bloques explicita en ejecuci�n no puede llamar a CREATE DATABASE. Primero ha de terminarse la transacci�n.

ERROR: Unable to create database directory 'xxx'., ERROR: Could not initialize database directory.

Estos mensaje est�n m�s bien relacionados con insuficientes permisos sobre el directorio de datos, insuficiente espacio en el disco, u otros problemas en el sistema de ficheros. El usuario bajo el que est� corriendo el servidor de base de datos debe tener acceso a la localizaci�n especificada.

Description

CREATE DATABASE crea una nueva base de datos PostgreSQL. El creador pasa a ser el propietario de la nueva base de datos.

Puede especificarse una localizaci�n alternativa para, por ejemplo, almacenar la base de datos en un disco diferente. La ruta debe haber sido preparada con la orden initlocation.

Si la ruta contiene una barra, la parte delantera se interpreta como una variable de entorno, que debe ser conocida por el proceso servidor. De esta forma el administrador de la base de datos puede ejercer control sobre las localizaciones que pueden ser creadas. (Una elecci�n de usuario puede ser, por ejemplo, 'PGDATA2'.) Si el servidor est� compilado con ALLOW_ABSOLUTE_DBPATHS (cosa que no se hace por defecto), se permiten tambi�n los nombres de ruta absolutos, identificados por una barra al principio (p. ej. '/usr/local/pgsql/data').

Notas

CREATE DATABASE es una extensi�n del lenguaje de Postgres.

Use drop_database para eliminar la base de datos.

El programa createdb es un script shell construido alrededor e este comando, y que se incluye por cortes�a.

Existen aspectos sobre seguridad e integridad de los datos implicados en el uso de localizaciones alternativas para las bases de datos especificados con nombres de ruta absolutos, y por defecto solo una variable de entorno conocida por el proceso servidor puede ser especificada para una localizaci�n alternativa. Vea la Guia del administrador para m�s informaci�n.

Uso

Para crear una nueva base de datos:

olly=> create database lusiadas;
   

para crear una nueva base de datos en un area alternativa ~/private_db:

$ mkdir private_db
$ initlocation ~/private_db
Creating Postgres database system directory /home/olly/private_db/base
   
$ psql olly
Welcome to psql, the PostgreSQL interactive terminal.
(Please type \copyright to see the distribution terms of PostgreSQL.)
 
Type \h for help with SQL commands,
     \? for help on internal slash commands,
     \q to quit,
     \g or terminate with semicolon to execute query.
olly=> CREATE DATABASE elsewhere WITH LOCATION = '/home/olly/private_db';
CREATE DATABASE
   

Compatibilidad

SQL92

No existe el comando CREATE DATABASE en SQL92. El comando equivalente en el SQL estandar es CREATE SCHEMA.