

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Atualização e inserção de novos dados
<a name="t_updating-inserting-using-staging-tables-"></a>

É possível adicionar novos dados de forma eficiente a uma tabela existente usando o comando MERGE. Execute uma operação de mesclagem criando uma tabela intermediária e, depois, use um dos métodos descritos nesta seção para atualizar a tabela de destino pela tabela de preparação. Para obter mais informações sobre o comando MERGE, consulte [MERGE](r_MERGE.md).

O [Exemplos de mesclagem](merge-examples.md) usa um exemplo de conjunto de dados para o Amazon Redshift, chamado conjunto de dados TICKIT. Como pré-requisito, você pode configurar as tabelas e os dados do TICKIT seguindo as instruções disponíveis em [Conceitos básicos das tarefas comuns do banco de dados](https://docs.aws.amazon.com/redshift/latest/gsg/database-tasks.html). Informações mais detalhadas sobre o exemplo de conjunto de dados estão disponíveis em [Exemplo de banco de dados](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html). 

## Método de mesclagem 1: substituição de linhas existentes
<a name="merge-method-replace-existing-rows"></a>

Se você estiver sobrescrevendo todas as colunas na tabela de destino, o método mais rápido para realizar uma mesclagem será substituir as linhas existentes. Isso verifica a tabela de destino apenas uma vez, usando uma junção interna para excluir as linhas que serão atualizadas. Após a exclusão das linhas, elas são substituídas por novas linhas por uma única operação de inserção da tabela de preparação. 

Use este método se todos os itens a seguir forem verdadeiros: 
+ Sua tabela de destino e sua tabela de preparação contêm as mesmas colunas. 
+ Você pretende substituir todos os dados nas colunas da tabela de destino por todas as colunas da tabela de preparação.
+ Você utilizará todas as linhas da tabela de preparação na mesclagem.

Se qualquer um desses critérios não se aplicar, use o “Método de mesclagem 2: especificação de uma lista de colunas sem usar MERGE”, descrito na seção a seguir.

Se você não vai usar todas as linhas da tabela de preparação, filtre as instruções DELETE e INSERT usando uma cláusula WHERE para ignorar linhas que não estejam sendo alteradas. No entanto, se a maioria das linhas da tabela de preparação não participará da mesclagem, recomendamos executar um UPDATE e um INSERT em etapas separadas, conforme descrito posteriormente nesta seção.

## Método de mesclagem 2: especificação de uma lista de colunas sem usar MERGE
<a name="merge-method-specify-column-list"></a>

Use este método para atualizar colunas específicas na tabela de destino em vez de substituir linhas inteiras. Este método leva mais tempo que o método anterior, pois ele requer uma etapa de atualização adicional e não usa o comando MERGE. Use este método se qualquer um dos itens a seguir for verdadeiro: 
+ Não todas as colunas da tabela de destino devem ser atualizadas. 
+ A maioria das linhas na tabela de preparação não serão usadas nas atualizações. 

**Topics**
+ [Método de mesclagem 1: substituição de linhas existentes](#merge-method-replace-existing-rows)
+ [Método de mesclagem 2: especificação de uma lista de colunas sem usar MERGE](#merge-method-specify-column-list)
+ [Criação de uma tabela de preparação temporária](merge-create-staging-table.md)
+ [Execução de uma operação de mesclagem com a substituição de linhas existentes](merge-replacing-existing-rows.md)
+ [Realizar uma operação de mesclagem especificando uma lista de colunas sem usar o comando MERGE](merge-specify-a-column-list.md)
+ [Exemplos de mesclagem](merge-examples.md)