CREATE TABLE
CREATE TABLE define una nueva tabla.
CREATE TABLE [ IF NOT EXISTS ] table_name ( [ { column_name data_type [ STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ] [ column_constraint [ ... ] ] | table_constraint | LIKE source_table [ like_option ... ] } [, ... ] ] ) where column_constraint is: [ CONSTRAINT constraint_name ] { NOT NULL | NULL | CHECK ( expression )| DEFAULT default_expr | GENERATED ALWAYS AS ( generation_expr ) STORED | GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( sequence_options ) | UNIQUE [ NULLS [ NOT ] DISTINCT ] index_parameters | PRIMARY KEY index_parameters | and table_constraint is: [ CONSTRAINT constraint_name ] { CHECK ( expression ) | UNIQUE [ NULLS [ NOT ] DISTINCT ] ( column_name [, ... ] ) index_parameters | PRIMARY KEY ( column_name [, ... ] ) index_parameters | and like_option is: { INCLUDING | EXCLUDING } { COMMENTS | CONSTRAINTS | DEFAULTS | GENERATED | IDENTITY | INDEXES | STATISTICS | ALL } index_parameters in UNIQUE, and PRIMARY KEY constraints are: [ INCLUDE ( column_name [, ... ] ) ]
Columnas de identidad
nota
Cuando se utilizan columnas de identidad, se debe considerar con cuidado el valor de la caché. Para obtener más información, consulte el aviso Importante de la página CREATE SEQUENCE.
Para obtener orientación sobre la mejor manera de utilizar las columnas de identidad en función de los patrones de carga de trabajo, consulte Trabajar con secuencias y columnas de identidad.
La cláusula GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( crea la columna como una columna de identidad. Tendrá una secuencia implícita asociada y, en las filas recién insertadas, la columna tendrá automáticamente los valores de la secuencia que se le haya asignado. Dicha columna es implícitamente sequence_options )NOT NULL.
Las cláusulas ALWAYS y BY DEFAULT determinan cómo se gestionan explícitamente los valores especificados por el usuario en los comandos INSERT y UPDATE.
En un comando INSERT, si se selecciona ALWAYS, solo se acepta un valor especificado por el usuario si la instrucción INSERT especifica OVERRIDING SYSTEM
VALUE. Si se selecciona BY DEFAULT, prevalece el valor especificado por el usuario.
En un comando UPDATE, si se selecciona ALWAYS, cualquier actualización de la columna a un valor distinto de DEFAULT se rechazará. Si se selecciona BY
DEFAULT, la columna se puede actualizar de forma normal. (No hay una cláusula OVERRIDING para el comando UPDATE).
La cláusula sequence_options se puede utilizar para anular los parámetros de la secuencia. Las opciones disponibles incluyen las que se muestran para CREATE SEQUENCE más SEQUENCE NAME
. Sin nameSEQUENCE NAME, el sistema elige un nombre no utilizado para la secuencia.
Modo de almacenamiento
La cláusula STORAGE opcional establece el modo de almacenamiento de la columna. Utilice estas opciones para controlar el comportamiento de la compresión para tipos de datos de longitud variable, como JSON.
Amazon Aurora DSQL comprime algunos tipos de datos cuando superan un tamaño determinado. Para deshabilitar este comportamiento, utilice las opciones PLAIN o EXTERNAL.
PLAIN-
Aurora DSQL almacena los datos en línea sin compresión. Esta es la única opción para tipos de datos de longitud fija, como
integer. Use esta opción para deshabilitar la compresión en algunos tipos de longitud variable. MAIN|EXTENDED|DEFAULT-
MAINyEXTENDEDpermiten la compresión opcional de la columna si el tipo de datos subyacente admite la compresión.DEFAULTestablece el modo de almacenamiento en el modo predeterminado para el tipo de datos de la columna. EXTERNAL-
Aurora DSQL no admite actualmente las tablas TOAST, pero
EXTERNALdeshabilita la compresión en los tipos de datos que admiten la compresión.