UPDATE

Name

UPDATE  --  atualiza linhas de uma tabela

Synopsis

UPDATE [ ONLY ] tabela SET coluna = expressão [, ...]
    [ FROM lista_de ]
    [ WHERE condição ]
  

Entradas

tabela

O nome de uma tabela existente.

coluna

O nome de uma coluna da tabela.

expressão

Uma expressão válida ou um valor a ser atribuído à coluna.

lista_de

Uma extensão não padrão do PostgreSQL que permite colunas de outras tabelas aparecerem na condição WHERE.

condição

Consulte o comando SELECT para obter uma descrição mais detalhada da cláusula WHERE.

Saídas

UPDATE #

Mensagem retornada se o comando for executado com sucesso. O # representa o número de linhas atualizadas. Se # for 0 então nenhuma linha foi atualizada.

Descrição

O comando UPDATE muda os valores das colunas especificadas em todas as linhas que satisfazem a condição. Somente as colunas a serem modificadas devem aparecer na relação de colunas do comando.

Referências a arrays utilizam a mesma sintaxe encontrada no comando SELECT. Assim sendo, um único elemento de um array, uma faixa de elementos de um array, ou todo o array pode ser substituído em um único comando.

É necessário possuir acesso de escrita na tabela para poder modificá-la, assim como acesso de leitura em todas as tabelas mencionadas na condição da cláusula WHERE.

Por padrão, o comando UPDATE atualiza todas as tuplas da tabela especificada e de suas filhas. Para atualizar apenas a tabela referenciada deve ser utilizada a cláusula ONLY.

Utilização

Mudar a palavra Drama por Suspense na coluna tipo:

UPDATE filmes
SET tipo = 'Suspense' 
WHERE tipo = 'Drama';
SELECT * 
FROM filmes
WHERE tipo = 'Drama' OR tipo = 'Suspense';

 cod   |     titulo    | did | data_prod  |   tipo   | tempo
-------+---------------+-----+------------+----------+-------
 BL101 | The Third Man | 101 | 1949-12-23 | Suspense | 01:44
 P_302 | Becket        | 103 | 1964-02-03 | Suspense | 02:28
 M_401 | War and Peace | 104 | 1967-02-12 | Suspense | 05:57
 T_601 | Yojimbo       | 106 | 1961-06-16 | Suspense | 01:50
 DA101 | Das Boot      | 110 | 1981-11-11 | Suspense | 02:29

Compatibilidade

SQL92

O SQL92 define uma sintaxe distinta para o comando UPDATE na posição do cursor:

UPDATE tabela SET coluna = expressão [, ...]
    WHERE CURRENT OF cursor
    

onde cursor identifica um cursor aberto.