

# Criação de tabelas ilimitadas usando variáveis
<a name="limitless-creating-config"></a>

Você pode usar variáveis para criar tabelas fragmentadas e de referência definindo o modo de criação de tabela. As tabelas criadas usarão esse modo até que você defina um modo diferente.

Use as seguintes variáveis para criar tabelas fragmentadas e de referência:
+ `rds_aurora.limitless_create_table_mode`: defina essa variável de sessão como `sharded` ou `reference`. O valor padrão da variável é `standard`.
+ `rds_aurora.limitless_create_table_shard_key`: defina essa variável de sessão como uma matriz de nomes de colunas para usar como chaves de fragmento. Essa variável é ignorada quando `rds_aurora.limitless_create_table_mode` não é `sharded`.

  Formate o valor como `untyped array literal`, semelhante a quando você insere literais em uma coluna de matriz. Para obter mais informações, consulte [Matrizes](https://www.postgresql.org/docs/current/arrays.html) na documentação do PostgreSQL.
+ `rds_aurora.limitless_create_table_collocate_with`: defina essa variável de sessão com um nome de tabela específico para colocar tabelas recém-criadas com essa tabela.

  Se duas ou mais tabelas forem fragmentadas usando a mesma chave de fragmento, você poderá alinhar (colocalizar) explicitamente essas tabelas. Quando duas ou mais tabelas são colocalizadas, as linhas dessas tabelas com os mesmos valores de chave de fragmento são colocadas no mesmo fragmento. A colocalização ajuda a restringir algumas operações a um único fragmento, o que resulta em melhor desempenho.

**nota**  
Todas as chaves primárias e únicas devem incluir a chave de fragmento. Isso significa que a chave de fragmento é um subconjunto da chave primária ou única.  
As tabelas ilimitadas têm algumas limitações. Para ter mais informações, consulte [Limitações de DDL e outras informações do Aurora PostgreSQL Limitless Database](limitless-reference.DDL-limitations.md).

**Topics**
+ [Exemplos usando variáveis para criar tabelas ilimitadas](#limitless-tables-examples)
+ [Visualizações de tabelas de banco de dados Aurora PostgreSQL Limitless](#limitless-table-views)

## Exemplos usando variáveis para criar tabelas ilimitadas
<a name="limitless-tables-examples"></a>

Os exemplos a seguir mostram como usar essas variáveis para criar tabelas fragmentadas e de referência.

Crie uma tabela fragmentada chamada `items`, com o `id` da a chave de fragmento.

```
BEGIN;
SET LOCAL rds_aurora.limitless_create_table_mode='sharded';
SET LOCAL rds_aurora.limitless_create_table_shard_key='{"id"}';
CREATE TABLE items(id int, val int, item text);
COMMIT;
```

Crie uma tabela fragmentada chamada `items`, com uma chave de fragmento composta pelas colunas `item_id` e `item_cat`.

```
BEGIN;
SET LOCAL rds_aurora.limitless_create_table_mode='sharded';
SET LOCAL rds_aurora.limitless_create_table_shard_key='{"item_id", "item_cat"}';
CREATE TABLE items(item_id int, item_cat varchar, val int, item text);
COMMIT;
```

Crie uma tabela fragmentada chamada `item_description`, com uma chave de fragmento composta pelas colunas `item_id` e `item_cat`, e colocalize-a com a tabela `items` do exemplo anterior.

```
BEGIN;
SET LOCAL rds_aurora.limitless_create_table_mode='sharded';
SET LOCAL rds_aurora.limitless_create_table_shard_key='{"item_id", "item_cat"}';
SET LOCAL rds_aurora.limitless_create_table_collocate_with='items';
CREATE TABLE item_description(item_id int, item_cat varchar, color_id int);
COMMIT;
```

Crie uma tabela de referência chamada `colors`.

```
BEGIN;
SET LOCAL rds_aurora.limitless_create_table_mode='reference';
CREATE TABLE colors(color_id int primary key, color varchar);
COMMIT;
```

Para redefinir a variável de sessão `rds_aurora.limitless_create_table_mode` como `standard`, use a seguinte declaração:

```
RESET rds_aurora.limitless_create_table_mode;
```

Depois de redefinir essa variável, as tabelas são criadas como tabelas padrão, que é o padrão. Para obter mais informações sobre tabelas padrão, consulte [Converter tabelas padrão em tabelas ilimitadas](limitless-converting-standard.md).

## Visualizações de tabelas de banco de dados Aurora PostgreSQL Limitless
<a name="limitless-table-views"></a>

Para obter informações sobre as tabelas do Limitless Database, use as visualizações a seguir.

**rds\_aurora.limitless\_tables**  
A visualização `rds_aurora.limitless_tables` contém informações sobre tabelas ilimitadas e seus tipos.  

```
postgres_limitless=> SELECT * FROM rds_aurora.limitless_tables;

 table_gid | local_oid | schema_name | table_name  | table_status | table_type  | distribution_key
-----------+-----------+-------------+-------------+--------------+-------------+------------------
         5 |     18635 | public      | standard    | active       | standard    | 
         6 |     18641 | public      | ref         | active       | reference   | 
         7 |     18797 | public      | orders      | active       | sharded     | HASH (order_id)
         2 |     18579 | public      | customer    | active       | sharded     | HASH (cust_id)
(4 rows)
```

**rds\_aurora.limitless\_table\_collocations**  
A visualização `rds_aurora.limitless_table_collocations` contém informações sobre tabelas fragmentadas colocalizadas. Por exemplo, as tabelas `orders` e `customers` são colocalizadas e têm o mesmo `collocation_id`. As tabelas `users` e `followers` são colocalizadas e têm o mesmo `collocation_id`.  

```
postgres_limitless=> SELECT * FROM rds_aurora.limitless_table_collocations ORDER BY collocation_id;

 collocation_id | schema_name | table_name
----------------+-------------+------------
          16002 | public      | orders
          16002 | public      | customers
          16005 | public      | users
          16005 | public      | followers
(4 rows)
```

**rds\_aurora.limitless\_table\_collocation\_distributions**  
A visualização `rds_aurora.limitless_table_collocation_distributions` mostra a distribuição de chaves para cada colocalização.  

```
postgres_limitless=> SELECT * FROM rds_aurora.limitless_table_collocation_distributions ORDER BY collocation_id, lower_bound;

 collocation_id | subcluster_id |     lower_bound      |     upper_bound
----------------+---------------+----------------------+----------------------
          16002 |             6 | -9223372036854775808 | -4611686018427387904
          16002 |             5 | -4611686018427387904 |                    0
          16002 |             4 |                    0 |  4611686018427387904
          16002 |             3 |  4611686018427387904 |  9223372036854775807
          16005 |             6 | -9223372036854775808 | -4611686018427387904
          16005 |             5 | -4611686018427387904 |                    0
          16005 |             4 |                    0 |  4611686018427387904
          16005 |             3 |  4611686018427387904 |  9223372036854775807
(8 rows)
```