

# Creación de tablas ilimitadas con variables
<a name="limitless-creating-config"></a>

Puede usar variables para crear tablas particionadas y de referencia configurando el modo de creación de tablas en una sesión. A continuación, las tablas que cree utilizarán este modo hasta que establezca un modo diferente.

Utilice las siguientes variables para crear tablas particionadas y de referencia:
+ `rds_aurora.limitless_create_table_mode`: defina esta variable de sesión en `sharded` o `reference`. El valor predeterminado de esta variable es `standard`.
+ `rds_aurora.limitless_create_table_shard_key`: defina esta variable de sesión en una matriz de nombres de columnas para utilizarlos como claves de partición. Esta variable se ignora cuando `rds_aurora.limitless_create_table_mode` no es `sharded`.

  Formatee el valor como `untyped array literal`, de forma similar a cuando inserta literales en una columna de matriz. Para obtener más información, consulte [Arrays](https://www.postgresql.org/docs/current/arrays.html) en la documentación de PostgreSQL.
+ `rds_aurora.limitless_create_table_collocate_with`: defina esta variable de sesión con un nombre de tabla específico para colocar las tablas recién creadas en esa tabla.

  Si dos o más tablas están particionadas con la misma clave de partición, puede alinear (colocar) esas tablas de forma explícita. Cuando se colocan dos o más tablas, las filas de esas tablas que tengan los mismos valores de clave de partición se colocarán en la misma partición. La colocación ayuda a restringir algunas operaciones a una sola partición, lo que se traduce en un mejor rendimiento.

**nota**  
Todas las claves principales y únicas deben incluir la clave de partición. Esto significa que la clave de partición es un subconjunto de la clave principal o única.  
Las tablas ilimitadas tienen algunas limitaciones. Para obtener más información, consulte [Limitaciones del DDL y otra información para Base de datos ilimitada de Aurora PostgreSQL](limitless-reference.DDL-limitations.md).

**Topics**
+ [Ejemplos de uso de variables para crear tablas ilimitadas](#limitless-tables-examples)
+ [Vistas de tabla de Base de datos ilimitada de Aurora PostgreSQL](#limitless-table-views)

## Ejemplos de uso de variables para crear tablas ilimitadas
<a name="limitless-tables-examples"></a>

En los siguientes ejemplos se muestra cómo utilizar estas variables para crear tablas particionadas y de referencia.

Cree una tabla particionada llamada `items` con la clave de partición `id`.

```
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;
```

Cree una tabla particionada llamada `items` con una clave de partición compuesta por las columnas `item_id` y `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;
```

Cree una tabla particionada llamada `item_description` con una clave de partición compuesta por las columnas `item_id` y `item_cat`, y colóquela con la tabla `items` del ejemplo 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;
```

Cree una tabla de referencia denominada `colors`.

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

Para restablecer la variable de sesión `rds_aurora.limitless_create_table_mode` a `standard`, utilice la siguiente instrucción:

```
RESET rds_aurora.limitless_create_table_mode;
```

Tras restablecer esta variable, las tablas se crean como tablas estándar, que es la versión predeterminada. Para obtener más información sobre las tablas estándar, consulte [Conversión de tablas estándar en tablas ilimitadas](limitless-converting-standard.md).

## Vistas de tabla de Base de datos ilimitada de Aurora PostgreSQL
<a name="limitless-table-views"></a>

Puede obtener información acerca de las tablas de Base de datos ilimitada con las siguientes vistas.

**rds\_aurora.limitless\_tables**  
La vista `rds_aurora.limitless_tables` contiene información sobre las tablas ilimitadas y sus 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**  
La vista `rds_aurora.limitless_table_collocations` contiene información sobre las tablas particionadas colocadas. Por ejemplo, las tablas `orders` y `customers` están colocadas y tienen el mismo `collocation_id`. Las tablas `users` y `followers` están colocadas y tienen el mismo `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**  
`rds_aurora.limitless_table_collocation_distributions` muestra la distribución de claves de cada colocación.  

```
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)
```