MySQL – UPDATE – Modificar Registros em Tabelas

MySQL – UPDATE – Modificar Registros em Tabelas

Nesta aula vamos mostrar como modificar registros em uma tabela do MySQL. É muito comum alterar o valor de um registro, por exemplo alterando o endereço de um cliente em um banco de dados, ou o telefone, ou o preço de um produto.

Para alterar colunas de um ou mais registros em uma tabela usamos o comando SQL UPDATE, segundo a sintaxe abaixo:

UPDATE tabela
SET coluna1 = novo_valor_armazenado,
         coluna2 = novo_valor_armazenado,
         colunaN = novo_valor_armazenado
WHERE coluna = valor_filtro;

Observação importante: Caso não seja usada a cláusula WHERE para filtrar os registros, todos os dados das colunas indicadas serão alterados – muito cuidado!

Vamos a um exemplo de alteração de registros. Iremos alterar o nome de um livro na tabela tbl_livros, cujo ID é igual a 101, para “SSH, o Shell Seguro”:

UPDATE tbl_Livro
SET Nome_Livro = 'SSH, o Shell Seguro'
WHERE ID_LIVRO = 101;

Outro exemplo: Vamos aumentar o preço do livro cujo ISBN é 9780735640610 para R$ 47,20 (atualmente ele custa R$ 45,30):

UPDATE tbl_livro
SET Preco_Livro = 47.20
WHERE ISBN = '9780735640610';

Basta realizar uma consulta à tabela para verificar se a alteração foi realizada com sucesso.

Assista à explicação sobre alteração de registros no MySQL no vídeo abaixo:

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

12 Comentários em MySQL – UPDATE – Modificar Registros em Tabelas

  1. Gil Miguel // 16/04/2015 em 18:54 // Responder

    As aulas abrirame orisontes pra criacao e manipulacao de BD

  2. Na aula MySQL – UPDATE – Modificar Registros em Tabelas o codigo ==>

    UPDATE tbl_Livro
    SET Preco_Livro = 47.20
    WHERE ISBN = ‘9780735640610’;

    Está dando erro UPDATE tbl_Livro SET Preco_Livro = 47.20 WHERE ISBN13 = ‘9780735640610’ diz que é error code 1175.

    Vc poderia me orientar qual é esse erro.

    Obrigado

    • Parece ser algo relacionado a uma opção do MySQL chamada de Safe Updates.

      Tente o seguinte para resolver o problema:

      No MySQL Workbench:

      Clique em Editar -> Preferências
      CLique na aba “SQL Editor” e DESMARQUE a opção “Safe Updates” (Atualizações Seguras)
      Faça logout e depois login novamente
      Tente executar o comando SQL agora.

      Verifique se funciona.

    • Deborah Castro // 22/03/2021 em 16:41 // Responder

      Como eu posso transferir esse comando pra java?

  3. UPDATE saopaulo SET CEP = CONCAT(‘0’+ CEP) WHERE (CEP >= ‘1001000’ AND CEP <= '1101000');

    estou tentando fazer este update, aparece erro mas não afeta nenhuma linha…

  4. Mallisson // 15/08/2019 em 17:39 // Responder

    como faço para alterar no caso do exemplo acima se eu tivesse x isbn mas quisesse alterar apenas 50, todos deixar o valor 47.20?

  5. Olá, muito bom conteúdo, porém, eu gostaria de uma ajuda.
    Estou montando um Banco utilizando PROCEDURE e eu preciso alterar um registro. O problema é que eu tenho um IF para não deixar registrar CPF´s duplicados e quando eu altero qualquer outro campo por exemplo, nome, o sistema informa que não é possível fazer alteração devido já existir o CPF, mas o CPF não precisa ser alterado, somente outros campos.
    Como eu posso fazer uma PROCEDURE que deixe eu atualizar outros campos, mas ao mesmo tempo não permita CPF duplicado ?
    Grato.

  6. Israel Lira // 28/04/2020 em 12:27 // Responder

    Preciso atualizar várias linhas com condições de identificação distintas e apresenta o erro:

    can’t format message 13:896 — message file I:\FORTES\AG\Clientes\firebird.msg not found.
    Dynamic SQL Error.
    SQL error code = -104.
    Token unknown – line 2, column 1.
    update.

    Segue exemplo do comando que estou usando:

    update cre set documento=’8350001′ where codigo=’20180266117′;
    update cre set documento=’8350002′ where codigo=’20180266116′;
    update cre set documento=’8350003′ where codigo=’20180266124′;

  7. Israel Lira // 28/04/2020 em 12:28 // Responder

    Preciso atualizar várias linhas com condições de identificação distintas e apresenta o erro:

    can’t format message 13:896 — message file I:\FORTES\AG\Clientes\firebird.msg not found.
    Dynamic SQL Error.
    SQL error code = -104.
    Token unknown – line 2, column 1.
    update.

    Segue exemplo do comando que estou usando:

    update cre set documento=’8350001′ where codigo=’20180266117′;
    update cre set documento=’8350002′ where codigo=’20180266116′;
    update cre set documento=’8350003′ where codigo=’20180266124′;

  8. Olá gostaria de uma ajuda, o comando update tem funcionado bem pra mim porem novos registros tenho sempre que executa lo. Como posso tornar fixa a alteração na tabela para novos registros?

    • Comentador // 04/05/2023 em 11:15 // Responder

      Imagino que para novos registros basta apenas você inserir o dado que deseja no momento da criação do registro, não necessitando atualizar depois.

Escreva um comentário

Seu e-mail não será divulgado


*