CREATE DATABASE

Nome

CREATE DATABASE -- cria um banco de dados

Sinopse

CREATE DATABASE nome
    [ [ WITH ] [ OWNER [=] dono_bd ]
           [ LOCATION [=] 'caminho_bd' ]
           [ TEMPLATE [=] modelo ]
           [ ENCODING [=] codificação ] ]

Descrição

O comando CREATE DATABASE cria um banco de dados no PostgreSQL.

Para poder criar um banco de dados é necessário ser um superusuário ou possuir o privilégio especial CREATEDB. Veja CREATE USER .

Normalmente, o criador se torna o dono do novo banco de dados. Os superusuários podem criar bancos de dados cujos donos são outros usuários utilizando a cláusula OWNER e, até mesmo, criar bancos de dados cujos donos são usuários sem nenhum privilégio especial. Usuários comuns com privilégio CREATEDB podem criar apenas bancos de dados cujos donos são eles mesmos.

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 pelo 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 processo servidor. Desta forma, o administrador do banco de dados pode controlar 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), os nomes de caminhos absolutos, identificados por uma barra inicial (por exemplo, /usr/local/pgsql/data), também são permitidos. Nos dois casos, o nome final do caminho deve ser absoluto e não pode conter nenhum apóstrofo (').

Por padrão, o novo banco de dados é criado clonando o de banco de dados comum do sistema template1. Um modelo diferente pode ser especificado escrevendo TEMPLATE modelo. Em particular, escrevendo TEMPLATE template0 pode ser criado um banco de dados básico contendo apenas os objetos comuns pré-definidos pela versão do PostgreSQL em uso. 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 selecionar a codificação do banco de dados. Quando este parâmetro não é especificado, o padrão é utilizar a mesma codificação do banco de dados usado como modelo.

Parâmetros

nome
O nome do banco de dados a ser criado.
dono_bd
O nome do usuário do banco de dados que será o dono do novo banco de dados, ou DEFAULT para usar o padrão (ou seja, o usuário que está executando o comando).
caminho_bd
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.
modelo
Nome do modelo a partir do qual o novo banco de dados será criado, ou DEFAULT para utilizar o modelo padrão (template1).
codificação
Codificação do conjunto de caracteres a ser utilizado no novo banco de dados. Deve ser especificada uma constante cadeia de caracteres (por exemplo, 'SQL_ASCII'), ou o número inteiro da codificação, ou DEFAULT para utilizar a codificação padrão.

Os parâmetros opcionais podem ser escritos em qualquer ordem, e não apenas na ordem mostrada acima.

Observações

O comando CREATE DATABASE não pode ser executado dentro de um bloco de transação.

Erros contendo "could not initialize database directory" (não foi possível inicializar o diretório do banco de dados) estão normalmente relacionados com a falta de permissão no diretório de dados, disco cheio, ou outros problemas no sistema de arquivos. Ao utilizar um local alternativo, o usuário sob o qual o servidor de banco de dados está processando deve ter acesso a este local.

Deve ser utilizado DROP DATABASE para remover o banco de dados.

A aplicação createdb , fornecida por conveniência, é um programa em torno deste comando.

Existem questões de segurança envolvidas, ao se utilizar locais alternativos para bancos de dados especificados por nomes de caminho absoluto; este é o motivo desta funcionalidade não ser habilitada por padrão. Veja a Seção 18.5 para obter mais informações.

Embora seja possível copiar outro banco de dados em vez do template1 especificando seu nome como modelo, não se pretende (ainda) que esta seja uma funcionalidade de "COPY DATABASE" de uso geral. Recomenda-se que os bancos de dados utilizados como modelo sejam tratados como se fossem somente para leitura. Veja a Seção 18.3 para obter mais informações.

Exemplos

Para criar um banco de dados:

CREATE DATABASE lusiadas;

Para criar um banco de dados novo na área alternativa ~/bd_privado, execute a partir da linha de comandos:

mkdir bd_privado
initlocation ~/bd_privado

Em seguida execute o comando abaixo em uma sessão do psql:

CREATE DATABASE outro_lugar WITH LOCATION '/home/olly/bd_privado';

Compatibilidade

Não existe o comando CREATE DATABASE no padrão SQL. Os bancos de dados são equivalentes aos catálogos, cuja criação é definida pela implementação.

SourceForge.net Logo