Todos os produtos
Search
Central de documentação

AnalyticDB:UPDATE

Última atualização: Jun 27, 2026

Utilize a instrução UPDATE para modificar dados em uma única tabela ou em múltiplas tabelas no AnalyticDB for MySQL.

Limitações

  • A tabela de destino deve possuir uma chave primária.

  • Não é possível atualizar colunas de chave primária.

  • As cláusulas ORDER BY e LIMIT têm suporte apenas para atualizações de tabela única.

  • Atualizações de múltiplas tabelas aceitam a junção de, no máximo, duas tabelas.

  • Cada instrução UPDATE pode ter como alvo apenas uma tabela. A tabela a ser modificada deve aparecer primeiro na instrução.

  • O comando UPDATE para múltiplas tabelas exige o AnalyticDB for MySQL V3.1.6.4 ou posterior. Para verificar ou atualizar a versão do seu cluster, acesse a página Cluster Information no console do AnalyticDB for MySQL e consulte a seção Configuration Information. Para obter instruções sobre como atualizar a versão secundária, consulte Atualizar a versão secundária de um cluster.

Atualizar uma única tabela

Sintaxe

UPDATE table_name
    SET assignment_list
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT ...]

Atualizar uma linha por ID

Altere o nome do cliente 2369 para Claire:

UPDATE customer
SET customer_name = 'Claire'
WHERE customer_id = '2369';

Para verifique a atualização:

SELECT customer_id, customer_name
FROM customer
WHERE customer_id = '2369';

Atualizar múltiplas tabelas

Empregue uma cláusula JOIN para ler valores de uma segunda tabela e gravar as atualizações na primeira tabela.

Sintaxe

UPDATE table_name1
[INNER JOIN | LEFT JOIN] table_name2 ON table_name1.column = table_name2.column
SET assignment_list
[WHERE where_condition]
Coloque a tabela a ser atualizada em primeiro lugar na instrução UPDATE .

Atualizar uma coluna usando LEFT JOIN

Modifique a idade do cliente 2369 utilizando um registro correspondente em new_customer:

UPDATE customer
    LEFT JOIN new_customer ON customer.customer_id = new_customer.customer_id
SET customer.customer_age = 42
WHERE new_customer.customer_id = '2369';

Para verifique a atualização:

SELECT customer_id, customer_age
FROM customer
WHERE customer_id = '2369';

Atualizar uma coluna usando INNER JOIN

Copie customer_name de new_customer para customer com base em um customer_id correspondente:

UPDATE customer
    INNER JOIN new_customer ON customer.customer_id = new_customer.customer_id
SET customer.customer_name = new_customer.customer_name;

Defina customer_id como 2369 para todas as linhas em que o nome do cliente coincida entre customer e new_customer:

UPDATE customer
    INNER JOIN new_customer ON customer.customer_name = new_customer.customer_name
SET customer.customer_id = '2369';

Definir uma coluna com um valor fixo

Atribua o valor 1 à coluna customer_id em todas as linhas de customer cujo nome do cliente corresponda a uma linha em new_customer:

UPDATE customer
    LEFT JOIN new_customer ON customer.customer_name = new_customer.customer_name
SET customer.customer_id = '1';

Observações de uso

Atualizações de alta frequência com INSERT ON DUPLICATE KEY UPDATE

Executar INSERT ON DUPLICATE KEY UPDATE acima de 100 QPS ou em grandes volumes de dados pode aumentar significativamente a utilização da CPU. Para cargas de trabalho de upsert com alto throughput, utilize REPLACE INTO em vez disso. Para mais informações, consulte REPLACE INTO.