Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

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.