Carregamento de valores padrão de coluna
Opcionalmente, é possível definir uma lista de colunas em seu comando COPY. Se uma coluna na tabela for omitida da lista de colunas, COPY carregará a coluna com o valor fornecido pela opção DEFAULT especificada no comando CREATE TABLE ou com NULL, se a opção DEFAULT não tiver sido especificada.
Se COPY tentar atribuir NULL a uma coluna definida como NOT NULL, o comando COPY falhará. Para informações sobre como atribuir a opção DEFAULT, consulte CRIAR TABELA.
Ao carregar de arquivos de dados no Amazon S3, as colunas na lista de colunas devem estar na mesma ordem que os campos no arquivo de dados. Se um campo no arquivo de dados não tem uma coluna correspondente na lista de coluna, o comando COPY falha.
Ao carregar da tabela do Amazon DynamoDB, a ordem não importa. Todos os campos nos atributos do Amazon DynamoDB que não correspondem a uma coluna na tabela do Amazon Redshift são descartados.
As seguintes restrições se aplicam ao usar o comando COPY para carregar valores DEFAULT em uma tabela:
-
Se uma coluna IDENTITY é incluída na lista de colunas, a opção EXPLICIT_IDS também deve ser especificada no comando COPY ou o comando COPY falha. Da mesma forma, se uma coluna IDENTITY é omitida da lista de colunas e a opção EXPLICIT_IDS é especificada, a operação COPY falha.
-
Como a expressão DEFAULT avaliada para determinada coluna é a mesma para todas as linhas carregadas, uma expressão DEFAULT que usa uma função RANDOM() atribuirá o mesmo valor para todas as linhas.
-
As expressões PADRÃO contendo CURRENT_DATE ou SYSDATE são definidas com o timestamp da transação atual.
Para obter um exemplo, consulte “Carregar dados de um arquivo com valores padrão” em Exemplos de COPY.