CREATE SCHEMA

Nome

CREATE SCHEMA -- cria um esquema

Sinopse

CREATE SCHEMA nome_do_esquema [ AUTHORIZATION nome_do_usuário ] [ elemento_do_esquema [ ... ] ]
CREATE SCHEMA AUTHORIZATION nome_do_usuário [ elemento_do_esquema [ ... ] ]

Descrição

O comando CREATE SCHEMA cria um esquema no banco de dados corrente. O nome do esquema deve ser distinto do nome de todos os outros esquemas existentes no banco de dados corrente.

Um esquema é essencialmente um espaço de nomes: contém objetos nomeados (tabelas, tipos de dado, funções e operadores) cujos nomes podem ser iguais aos de outros objetos existentes em outros esquemas. Os objetos nomeados são acessados "qualificando" seus nomes usando o nome do esquema como prefixo, ou definindo um caminho de procura que inclua os esquemas desejados. Os objetos não qualificados são criados no esquema corrente (o primeiro do caminho de procura, que pode ser determinado pela função current_schema [1] ).

Opcionalmente, o comando CREATE SCHEMA pode incluir subcomandos para criar objetos no novo esquema. Estes subcomandos são tratados, essencialmente, da mesma maneira como são tratados os comandos isolados executados após a criação do esquema, exceto que, se a cláusula AUTHORIZATION for usada, todos os objetos criados pertencerão a este usuário.

Parâmetros

nome_do_esquema
O nome do esquema a ser criado. Se for omitido, o nome do usuário será usado como o nome do esquema.
nome_do_usuário
O nome do usuário que será o dono do esquema. Se for omitido, será usado por padrão o usuário executando o comando. Somente os superusuários podem criar esquemas pertencentes a outros usuários.
elemento_do_esquema
Um comando SQL definindo um objeto a ser criado no esquema. Atualmente, somente as cláusulas CREATE TABLE, CREATE VIEW e GRANT são aceitas no comando CREATE SCHEMA. Os outros tipos de objeto podem ser criados por comandos separados, após o esquema ter sido criado.

Observações

Para criar um esquema, o usuário deve possuir o privilégio CREATE no banco de dados corrente (É claro que os superusuários não são afetados por esta exigência).

Exemplos

Criar um esquema:

CREATE SCHEMA meu_esquema;

Criar um esquema para o usuário antonio; o esquema também se chamará antonio:

CREATE SCHEMA AUTHORIZATION antonio;

Criar um esquema e criar uma tabela e uma visão nele:

CREATE SCHEMA hollywood
    CREATE TABLE filmes (titulo text, lancamento date, premios text[])
    CREATE VIEW premiados AS
        SELECT titulo, lancamento FROM filmes WHERE premios IS NOT NULL;

Deve ser observado que os subcomandos individuais não terminam por ponto-e-vírgula.

Abaixo está mostrada uma forma equivalente para se obter o mesmo resultado:

CREATE SCHEMA hollywood;
CREATE TABLE hollywood.filmes (titulo text, lancamento date, premios text[])
CREATE VIEW hollywood.premiados AS
    SELECT titulo, lancamento FROM hollywood.filmes WHERE premios IS NOT NULL;

Compatibilidade

O padrão SQL permite a cláusula DEFAULT CHARACTER SET no comando CREATE SCHEMA, bem como mais tipos de subcomandos que os aceitos atualmente pelo PostgreSQL.

O padrão SQL especifica que os subcomandos presentes em CREATE SCHEMA podem estar em qualquer ordem. A implementação atual do PostgreSQL não trata todos os casos de referência à frente nos subcomandos; alguma vezes pode ser necessário reordenar os subcomandos para evitar referências à frente.

De acordo com o padrão SQL, o dono do esquema sempre possui todos os objetos que este contém. O PostgreSQL permite que os esquemas contenham objetos pertencentes a outros usuários. Isto só acontece quando o dono do esquema concede o privilégio CREATE em seu esquema para algum outro usuário.

Veja também

ALTER SCHEMA , DROP SCHEMA

Notas

[1]

Use o comando SELECT current_schema(); (N. do T.)

SourceForge.net Logo