O comando REPLACE SELECT FROM copia registros de uma tabela (ou visualize) para outra em tempo real. Para cada registro, o sistema verifica se a chave primária já existe na tabela de destino. Em caso afirmativo, exclua o registro existente e insere o novo. Caso contrário, insere o registro diretamente.
Funcionamento
Para cada registro copiado, o AnalyticDB for MySQL executa as seguintes etapas:
Tenta inserir o registro na tabela de destino.
Se houver conflito de chave primária, exclua o registro conflitante.
Insere o novo registro.
Quando usar o REPLACE SELECT FROM
Use o REPLACE SELECT FROM quando precisar sobrescrever registros existentes com base na correspondência de chaves primárias — por exemplo, ao atualizar uma tabela de resumo com novos dados da source.
Sintaxe
REPLACE INTO table_name
[(column_name, ...)]
query;
Parâmetros
|
Parâmetro |
Descrição |
|
|
Nome da tabela de destino. A tabela deve existir antes da execução do comando. |
|
|
(Opcional) Colunas que receberão os dados copiados. Se especificadas, as colunas na cláusula |
|
|
Instrução |
Pré-requisitos
A tabela de destino existe.
Exemplo
Copie três colunas da tabela customer para a tabela new_customer, sobrescrevendo qualquer registro existente com chave primária correspondente.
REPLACE INTO new_customer (customer_id, customer_name, phone_num)
SELECT customer_id, customer_name, phone_num FROM customer
WHERE customer.customer_name = 'Alan';