DB2 12 - Updating table data


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES, Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DB2 12 - Atualizando dados da tabela - Updating table data

Você pode alterar o valor de uma coluna para outro valor ou remover o valor da coluna completamente.
You can change a column value to another value or remove the column value altogether.

Sobre esta tarefa - About this task

Para alterar os dados em uma tabela, use a instrução UPDATE.
Você também pode usar a instrução UPDATE para remover um valor de uma coluna (sem remover a linha) alterando o valor da coluna para nulo.
To change the data in a table, use the UPDATE statement.
You can also use the UPDATE statement to remove a value from a column (without removing the row) by changing the column value to null.

Exemplo: - Example:

Suponha que um funcionário se mude.
Para atualizar vários itens dos dados do funcionário na tabela de trabalho YEMP para refletir a mudança, você pode executar a seguinte instrução:
Suppose that an employee relocates.
To update several items of the employee's data in the YEMP work table to reflect the move, you can execute the following statement:

   UPDATE YEMP
      SET JOB     = 'MANAGER '
      ,   PHONENO ='5678'
   WHERE  EMPNO   = '000400';

Você não pode atualizar linhas em uma tabela temporária criada, mas pode atualizar linhas em uma tabela temporária declarada.
You cannot update rows in a created temporary table, but you can update rows in a declared temporary table.

A cláusula SET nomeia as colunas que você deseja atualizar e fornece os valores que deseja atribuir a essas colunas.
Você pode substituir um valor de coluna na cláusula SET por qualquer um dos seguintes itens:
The SET clause names the columns that you want to update and provides the values that you want to assign to those columns.
You can replace a column value in the SET clause with any of the following items:

  • Um valor nulo
    A coluna à qual você atribui o valor nulo não deve ser definida como NOT NULL.
    A null value
    The column to which you assign the null value must not be defined as NOT NULL.

  • Uma expressão, que pode ser qualquer um dos seguintes itens:
    An expression, which can be any of the following items:
    • Uma coluna - A column
    • Uma constante - A constant
    • Uma seleção completa escalar - A scalar fullselect
    • Uma variável de host - A host variable
    • Um registro especial - A special register

  • Um valor padrão
    Se você especificar DEFAULT, o Db2 determina o valor com base em como a coluna correspondente é definida na tabela.
    A default value
    If you specify DEFAULT, Db2 determines the value based on how the corresponding column is defined in the table.

Além disso, você pode substituir um ou mais valores de coluna na cláusula SET pelos valores de coluna em uma linha que é retornada por uma seleção completa.
In addition, you can replace one or more column values in the SET clause with the column values in a row that is returned by a fullselect.

Em seguida, identifique as linhas a serem atualizadas:
Next, identify the rows to update:

  • Para atualizar uma única linha, use uma cláusula WHERE que localiza uma, e apenas uma, linha.
    To update a single row, use a WHERE clause that locates one, and only one, row.

  • Para atualizar várias linhas, use uma cláusula WHERE que localiza apenas as linhas que você deseja atualizar.
    To update several rows, use a WHERE clause that locates only the rows that you want to update.

Se você omitir a cláusula WHERE, o Db2 atualizará todas as linhas da tabela ou visualização com os valores fornecidos.
If you omit the WHERE clause, Db2 updates every row in the table or view with the values that you supply.

Se o Db2 encontrar um erro ao executar sua instrução UPDATE (por exemplo, um valor de atualização muito grande para a coluna), ele interromperá a atualização e retornará um erro.
Nenhuma linha na tabela muda.
As linhas que já foram alteradas, se houver, são restauradas para seus valores anteriores.
Se a instrução UPDATE for bem-sucedida, SQLERRD (3) é definido como o número de linhas que são atualizadas.

If Db2 finds an error while executing your UPDATE statement (for example, an update value that is too large for the column), it stops updating and returns an error.
No rows in the table change.
Rows that were already changed, if any, are restored to their previous values.
If the UPDATE statement is successful, SQLERRD(3) is set to the number of rows that are updated.

Exemplo: - Example:

A declaração a seguir fornece uma inicial do meio ausente e altera o cargo para o funcionário 000200.
The following statement supplies a missing middle initial and changes the job for employee 000200.

   UPDATE YEMP
      SET MIDINIT = 'H'
            , JOB = 'FIELDREP'
    WHERE EMPNO   = '000200';

A seguinte declaração dá a todos no departamento D11 um aumento de 400,00.
A declaração pode atualizar várias linhas.
The following statement gives everyone in department D11 a raise of 400.00.
The statement can update several rows.

   UPDATE YEMP
      SET SALARY   = SALARY + 400.00
    WHERE WORKDEPT = 'D11';

A instrução a seguir define o salário do funcionário 000190 como o salário médio e define o bônus como o bônus mínimo para todos os funcionários.
The following statement sets the salary for employee 000190 to the average salary and sets the bonus to the minimum bonus for all employees.

   UPDATE YEMP
      SET (SALARY, BONUS) = 
          (SELECT AVG(SALARY), MIN(BONUS) 
           FROM   EMP)
    WHERE EMPNO = '000190';
  • Selecionando valores ao atualizar dados - Selecting values while updating data
    Ao atualizar linhas em uma tabela, você pode selecionar os valores atualizados dessas linhas ao mesmo tempo.
    When you update rows in a table, you can select the updated values from those rows at the same time.

  • Atualizando milhares de linhas - Updating thousands of rows
    Ao atualizar grandes volumes de dados, considere certas ações recomendadas para aumentar a simultaneidade.
    When you update large volumes of data, consider certain recommended actions to increase concurrency.

Parent topic: Adding and modifying data from application programs



© Copyright IBM Corp.