Carga de valores de columna predeterminados
De manera opcional, puede definir una lista de columnas en su comando COPY. Si una columna de la tabla se omite en la lista de columnas, COPY la copiará o con el valor proporcionado por la opción DEFAULT especificada en el comando CREATE TABLE o con NULL, si la opción DEFAULT no se especificó.
Si COPY prueba asignar NULL a una columna que está definida como NOT NULL, el comando COPY falla. Para obtener información acerca de asignar la opción DEFAULT, consulte CREATE TABLE.
Cuando se realiza la carga desde los archivos de datos en Amazon S3, las columnas de la lista de columnas deben encontrarse en el mismo orden en que se encuentran los campos en el archivo de datos. Si un campo en el archivo de datos no tiene una columna correspondiente en la lista de columnas, el comando COPY provocará un error.
Cuando se realiza la carga desde una tabla de Amazon DynamoDB, el orden no importa. Los campos en los atributos de Amazon DynamoDB que no concuerdan con ninguna columna de la tabla de Amazon Redshift se descartan.
Al usar el comando COPY para cargar valores DEFAULT en una tabla se aplican las siguientes restricciones:
-
Si se incluye una columna IDENTITY en la lista de columnas, también se debe especificar la opción EXPLICIT_IDS en el comando COPY, o este último provocará un error. De manera similar, si se omite una columna IDENTITY de la lista de columnas y se especifica la opción EXPLICIT_IDS, la operación COPY provocará un error.
-
Como la expresión DEFAULT evaluada para una columna dada es la misma para todas las filas cargadas, una expresión DEFAULT que usa una función RANDOM() asignará el mismo valor a todas las filas.
-
Las expresiones DEFAULT que tienen CURRENT_DATE o SYSDATE se establecen según la marca temporal de la transacción actual.
Para obtener un ejemplo, consulte "Load data from a file with default values" en Ejemplos de COPY.