CREATE TABLE - Amazon Aurora DSQL

CREATE TABLE

CREATE TABLE define una nueva tabla.

CREATE TABLE [ IF NOT EXISTS ] table_name ( [ { column_name data_type [ 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 ( sequence_options ) 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 NOT NULL.

Las cláusulas ALWAYS y BY DEFAULT determinar 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 name. Sin SEQUENCE NAME, el sistema elige un nombre no utilizado para la secuencia.