A instru????o UPDATE define o valor na coluna.
Pode ser atualizada a linha corrente de um cursor atualiz??vel aberto. Se n??o houver linha corrente, ou a linha corrente n??o satisfizer mais a consulta do cursor, ser?? lan??ada um exce????o.
{ UPDATE nome-da-tabela SET nome-da-coluna = Valor [ , nome-da-coluna = Valor} ]* [Cl??usula WHERE] | UPDATE nome-da-tabela SET nome-da-coluna = Valor [ , nome-da-coluna = Valor ]* WHERE CURRENT OF }
A primeira forma sint??tica ?? chamada de atualiza????o procurada. A segunda forma sint??tica ?? chamada de atualiza????o posicionada.
Nas atualiza????es procuradas, s??o atualizadas todas as linhas da tabela para as quais a cl??usula WHERE ?? avaliada como TRUE.
Nas atualiza????es posicionadas, somente podem ser atualizadas as colunas inclu??das na Cl??usula FOR UPDATE da instru????o SELECT que criou o cursor. Se a instru????o SELECT n??o incluir a cl??usula FOR UPDATE, o cursor ser?? apenas-de-leitura, n??o podendo ser utilizado para atualiza????es.
A especifica????o de DEFAULT para o valor atualizado, define o valor da coluna como o valor padr??o definido nesta tabela.
-- Todos os empregados, exceto o gerente, -- do departamento (DEP_TRAB) 'E21' foram temporariamente -- reatribu??dos. Indique isto alterando seus cargos (CARGO) -- para NULL, e os valores de seus pagamentos (SAL??RIO, B??NUS, COMISS) -- para zero, na tabela EMPREGADOS. UPDATE EMPREGADOS SET CARGO=NULL, SAL??RIO=0, B??NUS=0, COMISS=0 WHERE DEP_TRAB = 'E21' AND CARGO <> 'GERENTE' -- Promover o cargo (CARGO) de determinado empregado para GERENTE UPDATE EMPREGADOS SET CARGO = 'GERENTE' WHERE CURRENT OF CURS1; -- Multiplicar a equipe do projeto (PROJ_EQUIPE) por 1.5 stmt.executeUpdate("UPDATE PROJETO SET PROJ_EQUIPE = " "PROJ_EQUIPE * 1.5" + "WHERE CURRENT OF" + ResultSet.getCursorName()); -- Alterar o cargo (CARGO) do empregado n??mero (NUM_EMP) '000290' -- na tabela EMPREGADOS para o seu valor DEFAULT que ?? NULL UPDATE EMPREGADOS SET CARGO = DEFAULT WHERE NUM_EMP = '000290';
A instru????o de atualiza????o procurada depende da tabela sendo atualizada, de todos os seus conglomerados (unidades de armazenamento como heaps e ??ndices), todas as suas restri????es, e de todas as outras tabelas referenciadas na cl??usula WHERE e nas express??es SET. A execu????o de uma instru????o CREATE ou DROP INDEX, ou de uma instru????o ALTER TABLE, na tabela de destino de uma instru????o de atualiza????o procurada preparada, invalida a instru????o de atualiza????o procurada preparada.
A instru????o de atualiza????o posicionada depende do cursor e de todas as tabelas que o cursor faz refer??ncia. A atualiza????o posicionada pode ser compilada mesmo se o cursor ainda n??o tiver sido aberto. Entretanto, a remo????o do cursor aberto atrav??s do m??todo close do JDBC invalida a atualiza????o posicionada.
A execu????o de uma instru????o CREATE ou DROP INDEX, ou de uma instru????o ALTER TABLE, na tabela de destino de uma instru????o de atualiza????o posicionada preparada, invalida a instru????o de atualiza????o posicionada preparada.
A remo????o de um ali??s invalida a instru????o de atualiza????o preparada, se a instru????o utilizar o ali??s.
Remover ou adicionar gatilhos na tabela de destino da atualiza????o invalida a instru????o de atualiza????o.