Sempre inclua uma cláusula WHERE nas instruções UPDATE condicionais

Ao executar uma instrução UPDATE ou DELETE que atualiza condicionalmente um subconjunto de linhas na tabela SQL, você deve incluir uma cláusula WHERE para definir o escopo do conjunto de dados que está alterando. Caso contrário, sua consulta não terá o escopo definido e você provavelmente estará cometendo atualizações indesejadas. Exemplo:

UPDATE table_name
SET column_a
= (
CASE column_b

WHEN
'value1' THEN 'some value'
...
WHEN
'valuen' THEN 'another value'
END
)

Esta declaração parece estar atualizando apenas um subconjunto da tabela. Se executado como está, column_a será definido como NULL para linhas em que column_b não corresponda a nenhuma condição na instrução CASE e atualizado conforme o esperado quando corresponder. Para garantir que você está atualizando as linhas corretas, anexe o seguinte a elas:

WHERE column_b IN ('value1', ..., 'valuen');

Se você tiver um fallback ou valor padrão para column_b, esse problema pode ser contornado incluindo um ELSE em sua instrução CASE.