CREATE DATABASE nome [ WITH [ LOCATION = 'caminho' ] [ TEMPLATE = gabarito ] [ ENCODING = codificação ] ]
O nome do banco de dados a ser criado.
Um local alternativo no sistema de arquivos onde será armazenado o banco de dados, especificado como uma cadeia de caracteres; ou DEFAULT para utilizar o local padrão.
Nome do banco de dados a ser usado como gabarito para a criação do novo banco de dados, ou DEFAULT para utilizar o banco de dados de gabarito padrão (template1).
Método de codificação multibyte a ser utilizado no novo banco de dados. Especifique o nome como uma cadeia de caracteres (por exemplo, 'SQL_ASCII'), ou o número inteiro da codificação, ou DEFAULT para utilizar a codificação padrão.
Mensagem retornada se o comando for executado com sucesso.
É necessário possuir o privilégio especial CREATEDB para criar bancos de dados. Consulte o comando CREATE USER.
Esta mensagem ocorre se o banco de dados com o nome especificado já existir.
O local do banco de dados especificado em caminho não pode conter apóstrofos ('). Isto é necessário para que o interpretador de comandos, que vai criar o diretório do banco de dados, possa executar com segurança.
Havendo um bloco de transação explícito sendo executado não é possível utilizar o comando CREATE DATABASE. Primeiro a transação deve terminar.
Estas mensagens estão relacionadas com a falta de permissão no diretório de dados, o disco estar cheio, ou outro problema no sistema de arquivos. O usuário, sob o qual o servidor de banco de dados está processando, deve ter permissão para o local.
O comando CREATE DATABASE cria um banco de dados novo no PostgreSQL. O criador se torna o dono do novo banco de dados.
Um local alternativo pode ser especificado com a finalidade de, por exemplo, armazenar o banco de dados em um disco diferente. O caminho deve ter sido preparado anteriormente com o comando initlocation.
Se o nome do caminho não possuir uma barra (/) é interpretado como sendo o nome de uma variável de ambiente, a qual deve ser conhecida pelo servidor. Desta maneira, o administrador do banco de dados pode exercer controle sobre os locais onde os bancos de dados podem ser criados (Uma escolha usual é, por exemplo, PGDATA2). Se o servidor for compilado com ALLOW_ABSOLUTE_DBPATHS (o que não é feito por padrão), nomes de caminhos absolutos, identificados por uma barra inicial (por exemplo, /usr/local/pgsql/data), também são permitidos.
Por padrão, o novo banco de dados será criado clonando o banco de dados padrão do sistema template1. Um gabarito diferente pode ser especificado escrevendo-se TEMPLATE = nome. Em particular, escrevendo-se TEMPLATE = template0, pode ser criado um banco de dados básico contendo apenas os objetos padrão predefinidos pela versão do PostgreSQL sendo utilizada. Esta forma é útil quando se deseja evitar a cópia de qualquer objeto da instalação local que possa ter sido adicionado ao template1.
O parâmetro opcional de codificação permite a escolha de uma codificação para o banco de dados, se o servidor em uso foi compilado com suporte à codificação multibyte. Quando este parâmetro não é especificado, o padrão é utilizar a mesma codificação do banco de dados usado como gabarito.
Os parâmetros opcionais podem ser escritos em qualquer ordem, e não apenas na ordem mostrada acima.
O comando CREATE DATABASE é uma extensão da linguagem do PostgreSQL.
Use o comando DROP DATABASE para excluir um banco de dados.
O aplicativo createdb é um script envoltório criado em torno deste comando, fornecido por conveniência.
Existem questões associadas à segurança e à integridade dos dados envolvidas na utilização de locais alternativos para os bancos de dados especificados por caminhos absolutos. Por isso, pelo padrão, somente uma variável de ambiente conhecida pelo gerenciador de banco de dados pode ser especificada para um local alternativo. Consulte o Guia do Administrador do PostgreSQL para obter mais informações.
Embora seja possível copiar outros bancos de dados além do template1 especificando-se seu nome como gabarito, não se pretende (pelo menos ainda) que seja uma funcionalidade para COPY DATABASE de uso geral. É recomendado que os bancos de dados utilizados como gabarito sejam tratados como se fossem apenas de leitura. Consulte o Guia do Administrador do PostgreSQL para obter mais informações.
Para criar um banco de dados novo:
silva=> create database lusiadas;
Para criar um banco de dados novo na área alternativa ~/bd_privado:
$ mkdir bd_privado $ initlocation ~/bd_privado The location will be initialized with username "silva". This user will own all the files and must also own the server process. Creating directory /home/silva/bd_privado Creating directory /home/silva/bd_privado/base initlocation is complete. $ psql silva Welcome to psql, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit silva=> CREATE DATABASE outrolugar WITH LOCATION = '/home/silva/bd_privado'; CREATE DATABASE