PostgreSQL UPDATE
A instrução `UPDATE` no PostgreSQL é usada para modificar os registros existentes em uma tabela. Ele permite que você altere os valores de uma ou mais colunas para linhas que atendam às condições especificadas.
Uso
O comando `UPDATE` é usado quando você precisa alterar dados em uma tabela sem excluir e reinserir linhas. Isso requer que você especifique a tabela, as colunas a serem atualizadas e os novos valores, geralmente acompanhados de uma cláusula `WHERE` para limitar o escopo.
UPDATE table_name
SET column1 = value1, column2 = value2, ...
[WHERE condition];
Nessa sintaxe, `UPDATE nome_da_tabela` especifica a tabela a ser modificada e `SET` atribui novos valores às colunas especificadas, opcionalmente filtradas por uma condição `WHERE`.
Exemplos
1. Atualização básica
UPDATE employees
SET salary = 50000
WHERE employee_id = 123;
Este exemplo atualiza a coluna `salário` para 50.000 para o funcionário com um `id_empregado` de 123.
2. Atualizar várias colunas
UPDATE products
SET price = price * 1.1, stock = stock - 5
WHERE product_id = 456;
Aqui, o `preço` é aumentado em 10% e o `estoque` é reduzido em 5 para o produto com `product_id` 456.
3. Atualização condicional com subconsulta
UPDATE customers
SET status = 'inactive'
WHERE last_order_date < (SELECT NOW() - INTERVAL '1 year');
Este exemplo define o `status` como 'inativo' para clientes que não fizeram um pedido em mais de um ano, utilizando uma subconsulta para a condição de data.
4. Usando a cláusula RETURNING
UPDATE employees
SET salary = 50000
WHERE employee_id = 123
RETURNING employee_id, salary;
Esse exemplo não apenas atualiza o `salário`, mas também retorna o `id_empregado` e o `salário` atualizado para fins de verificação.
Dicas e práticas recomendadas
- Use as cláusulas WHERE com sabedoria. Sempre use uma cláusula `WHERE` para direcionar linhas específicas, evitando atualizações não intencionais em todas as linhas da tabela.
- Faça backup dos dados antes de atualizar. Faça backup de seus dados antes de realizar grandes atualizações para evitar a perda de dados.
- Teste as atualizações com transações. Use transações para testar atualizações, permitindo que você reverta as alterações se elas não atenderem às suas expectativas.
- Monitore o desempenho. Verifique regularmente os impactos no desempenho, especialmente ao atualizar grandes conjuntos de dados ou usar condições complexas.
- Esteja ciente dos problemas de concorrência. Ao atualizar linhas em um ambiente multiusuário, esteja atento a possíveis problemas de bloqueio. Considere o uso de níveis de isolamento adequados para gerenciar transações simultâneas de forma eficaz.