Os schemas organizam as tabelas em um banco de dados do Hologres e permitem que vários usuários ou aplicativos compartilhem o mesmo banco de dados sem interferência mútua.
Como funciona
O Hologres é compatível com o PostgreSQL e seu comportamento de schemas segue o padrão desse sistema. Os schemas alteram a estrutura de endereçamento das tabelas de database.table para database.schema.table. Assim, tabelas ou tipos de dados em schemas diferentes podem ter o mesmo nome sem conflitos.
Todo banco de dados do Hologres inclui, por padrão, um schema public. Tabelas criadas sem a especificação explícita de um schema são armazenadas no public.
A figura a seguir ilustra a hierarquia de objetos em uma instância do Hologres.

Atualmente, o Hologres oferece suporte às seguintes operações:
Criação de schemas
Renomeação de schemas
Criação de tabelas em um schema
Sintaxe
CREATE SCHEMA schema_name;
Criar um schema
-
Crie o schema.
CREATE SCHEMA schemaname;--Create a schema. -
Mude para o novo schema e crie uma tabela nele.
SET search_path TO schemaname;--Switch to the target schema. CREATE TABLE blink_demo (id text); --Create a table in the target schema. -
Verifique se o schema ativo foi alterado corretamente.
SELECT CURRENT_SCHEMA();--View the current schema.A consulta retorna
schemaname, confirmando o sucesso da alteração.
Para identificar o schema de uma tabela, execute o comando abaixo no terminal:
\d tablename; --View the schema to which the target table belongs. This statement applies only to the terminal.
Criar tabelas em diferentes schemas
Para criar uma tabela em um schema específico sem alterar o search_path, prefixe o nome da tabela com o nome do schema: schema.table.
Criar uma tabela no schema public:
CREATE TABLE public.mytest (
name text,
id INT);
Criar uma tabela em outro schema enquanto estiver conectado ao public:
SET search_path TO public;
CREATE TABLE my_schema.mytest (
name text,
id INT,
age INT
);
Visualizar o tamanho de armazenamento do schema
Para visualizar o tamanho total de armazenamento de todas as tabelas em um schema, execute:
SELECT table_schema, pg_size_pretty(SUM(pg_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name))::decimal)) AS schema_size
FROM information_schema.tables
WHERE table_schema = '<schema_name>'--Replace <schema_name> with the name of your schema.
GROUP BY table_schema;