CREATE DATABASE name [ WITH LOCATION = 'dbpath' ]
Le nombre de la base de datos a crear.
Una ubicación alternativa para almacenar la nueva base de datos en el sistema de archivos. Ver más adelante posibles problemas.
Mensaje devuelto si la orden se completa satisfactoriamente.
Ha de tener el prvilegio especial CREATEDB para crear bases de datos. Ver CREAR USUARIO.
Esto ocurre si una base de datos llamada name ya existe.
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.
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.
Si tiene una transacción de bloques explicita en ejecución no puede llamar a CREATE DATABASE. Primero ha de terminarse la transacción.
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.
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').
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.
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