Tipos de datos admitidos en Aurora DSQL
Aurora DSQL admite un subconjunto de los tipos comunes de PostgreSQL.
Temas
Tipos de datos numéricos
Aurora DSQL admite los siguientes tipos de datos numéricos de PostgreSQL.
| Nombre | Alias | Intervalo y precisión | Tamaño del almacenamiento | Compatibilidad con índices |
|---|---|---|---|---|
smallint |
int2 |
De -32768 a +32767 | 2 bytes | Sí |
|
|
|
De -2147483648 a 2147483647 |
4 bytes |
Sí |
|
|
|
De -9223372036854775808 a +9223372036854775807 |
8 bytes |
Sí |
|
|
|
Precisión de 6 dígitos decimales |
4 bytes |
Sí |
|
|
|
Precisión de 15 dígitos decimales |
8 bytes |
Sí |
|
|
|
Numérico exacto de precisión seleccionable. La precisión máxima es 1000 y la escala puede estar entre -1000 y 1000. 1 El valor predeterminado es |
8 bytes + 2 bytes por grupo de 4 dígitos decimales. El tamaño máximo es de 510 bytes. |
Sí |
1: si no especifica explícitamente un tamaño cuando ejecuta CREATE TABLE o ALTER TABLE ADD COLUMN, Aurora DSQL aplica los valores predeterminados. Aurora DSQL aplica límites cuando ejecuta las instrucciones INSERT o UPDATE.
Tipos de datos de caracteres
Aurora DSQL admite los siguientes tipos de datos de caracteres de PostgreSQL.
| Nombre | Alias | Descripción | Límite de Aurora DSQL | Tamaño del almacenamiento | Compatibilidad con índices |
|---|---|---|---|---|---|
|
|
|
Cadena de caracteres de longitud fija |
4096 bytes1,2 |
Variable hasta 4100 bytes |
Sí |
|
|
|
Cadena de caracteres de longitud variable |
65535 bytes1,2 |
Variable hasta 65539 bytes |
Sí |
|
|
Si es de longitud fija, es un alias de |
4096 bytes1,2 |
Variable hasta 4100 bytes |
Sí | |
|
|
Cadena de caracteres de longitud variable |
1 MiB1,2 |
Variable de hasta 1 MiB |
Sí |
1: si no especifica explícitamente un tamaño cuando ejecuta CREATE TABLE o ALTER TABLE ADD COLUMN, Aurora DSQL aplica los valores predeterminados. Aurora DSQL aplica límites cuando ejecuta las instrucciones INSERT o UPDATE.
2: Aurora DSQL comprime automáticamente los valores text, varchar y bpchar grandes durante las operaciones INSERT y UPDATE. Aurora DSQL comprime estos valores solo en columnas que no forman parte de una clave. Los valores de las columnas de clave principal y de las columnas de claves de un índice secundario siempre se almacenan sin comprimir.
Para deshabilitar la compresión, utilice la palabra clave STORAGE. Para obtener más información, consulte CREATE TABLE y ALTER TABLE.
Tipos de datos de fecha y hora
Aurora DSQL admite los siguientes tipos de datos de fecha y hora de PostgreSQL.
| Nombre | Alias | Descripción | Range | Resolución | Tamaño del almacenamiento | Compatibilidad con índices |
|---|---|---|---|---|---|---|
|
|
Fecha de calendario (año, mes, día) |
De 4713 a. C. a 5874897 d. C. |
1 día |
4 bytes |
Sí | |
|
|
Hora del día, sin zona horaria |
00:00:00 – 24:00:00 |
1 microsegundo |
8 bytes |
Sí | |
|
|
|
Hora del día, con zona horaria |
De 00:00:00+1559 a 24:00:00 -1559 |
1 microsegundo |
12 bytes |
No |
|
|
Fecha y hora, sin zona horaria |
De 4713 a. C. a 294276 d. C. | 1 microsegundo |
8 bytes |
Sí | |
|
|
|
Fecha y hora, con zona horaria |
De 4713 a. C. a 294276 d. C. | 1 microsegundo |
8 bytes |
Sí |
|
|
Intervalo de tiempo |
De -178000000 años a 178000000 años | 1 microsegundo |
16 bytes |
No |
Tipos de datos varios
Aurora DSQL soporta los siguientes tipos de datos varios de PostgreSQL.
| Nombre | Alias | Descripción | Límite de Aurora DSQL | Tamaño del almacenamiento | Compatibilidad con índices |
|---|---|---|---|---|---|
|
|
|
Booleano lógico (true/false) |
1 byte |
Sí | |
|
|
Datos binarios (“matriz de bytes”) |
1 MiB1 |
Variable hasta un límite de 1 MiB |
No | |
|
|
Identificador único universal |
16 bytes |
Sí | ||
|
|
Datos JSON |
1 MiB2 |
Variable hasta un límite de 1 MiB.2 |
No | |
|
|
Datos JSON binarios |
1 MiB2 |
Variable hasta un límite de 1 MiB.2 |
No |
1: si no especifica explícitamente un tamaño cuando ejecuta CREATE TABLE o ALTER TABLE ADD COLUMN, Aurora DSQL aplica los valores predeterminados. Aurora DSQL aplica límites cuando ejecuta las instrucciones INSERT o UPDATE.
2: Aurora DSQL comprime automáticamente los valores json y jsonb grandes durante las operaciones INSERT y UPDATE. El límite de 1 MiB se aplica al tamaño comprimido, por lo que puede almacenar valores json y jsonb muy superiores a 1 MiB siempre que se compriman por debajo del límite.
Para deshabilitar la compresión, utilice la palabra clave STORAGE. Para obtener más información, consulte CREATE TABLE y ALTER TABLE.
JSON functions and operators (Funciones y operadores JSON)
Aurora DSQL admite todas las funciones y operadores JSON de PostgreSQL descritos en la sección 9.16, Funciones y operadores JSON
nota
Las funciones json_populate_record, json_populate_recordset, jsonb_populate_record y jsonb_populate_recordset funcionan con tipos de filas de tablas y vistas, pero no con tipos compuestos personalizados, ya que Aurora DSQL no admite actualmente CREATE TYPE.
En los siguientes ejemplos se muestra el uso de json_populate_record y jsonb_populate_recordset con un tipo de fila de tabla:
CREATE TABLE tt (c1 INT, c2 INT); SELECT * FROM json_populate_record(null::tt, '{"c1": 1, "c2": 2}');
c1 | c2 ----+---- 1 | 2 (1 row)
SELECT * FROM jsonb_populate_recordset(null::tt, '[{"c1":1,"c2":2}, {"c1":3,"c2":4}]');
c1 | c2 ----+---- 1 | 2 3 | 4 (2 rows)
Tipos de datos de tiempo de ejecución de consultas
Los tipos de datos de tiempo de ejecución de consultas son tipos de datos internos que se utilizan en tiempo de ejecución de consultas. Estos tipos son distintos de los tipos compatibles con PostgreSQL como varchar y integer que define en el esquema. En su lugar, estos tipos son representaciones en tiempo de ejecución que Aurora DSQL utiliza al procesar una consulta.
Los siguientes tipos de datos son compatibles solo durante el tiempo de ejecución de consultas:
- Tipo de matriz
-
Aurora DSQL admite matrices de los tipos de datos admitidos. Por ejemplo, puede tener una matriz de enteros. La función
string_to_arraydivide una cadena en una matriz al estilo de PostgreSQL mediante el delimitador de comas (,) como se muestra en el ejemplo siguiente. Puede utilizar matrices en expresiones, salidas de funciones o cálculos temporales durante la ejecución de consultas.SELECT string_to_array('1,2', ',');La función devuelve una respuesta similar a lo siguiente:
string_to_array ----------------- {1,2} (1 row) - Tipo inet
-
Este tipo de datos representa direcciones de host IPv4, IPv6 y las subredes. Este tipo es útil al analizar registros, filtrar por subredes IP o realizar cálculos de red en una consulta. Para obtener más información, consulte inet en la documentación de PostgreSQL
.