Atualizar registros em banco MySQL com script em Python
Atualizar registros em banco MySQL com script em Python
Neste tutorial damos sequência à nossa série sobre acesso a bancos de dados MySQL usando scripts em Python. Desta vez, trago um script que permite realizar a atualização de registros em uma tabela do banco, por meio do emprego da cláusula SQL UPDATE. Vamos atualizar o preço de um produto selecionado na tabela de produtos, usada nos exemplos de lições anteriores.
No programa, cujo código é mostrado a seguir, vamos criar funções para definir três operações a serem realizadas:
- Conexão ao banco de dados: função conectar()
- Consulta ao produto cujo preço se deseja alterar: função consulta()
- Atualização do preço do produto com valor informado pelo usuário: função atualiza().
A função consulta() recebe como argumento o ID do produto cujo preço será alterado, sendo executada tanto antes da alteração quanto depois, para verificar se a atualização do registro ocorreu da forma esperada.
A função atualiza() recebe como argumento a declaração SQL que será executada no banco de dados, usando UPDATE.
A seguir temos o código completo do script para você testar e alterar à vontade:
Código
import mysql.connector from mysql.connector import Error # Script para atualização de registros em um banco de dados MySQL def conectar(): try: global con con = mysql.connector.connect(host='localhost',database='db_MeusLivros',user='root',password='abc123**') except Error as erro: print("Erro de Conexão") def atualiza(declaracao): try: conectar() altera_preco = declaracao cursor = con.cursor() cursor.execute(altera_preco) con.commit() print("Preço alterado com sucesso!") cursor.close() except Error as erro: print("Falha ao inserir dados no MySQL: {}".format(erro)) finally: if (con.is_connected()): cursor.close() con.close() def consulta(idProd): try: conectar() consulta_sql = 'select * from tbl_produtos WHERE IdProduto = ' + idProd cursor = con.cursor() cursor.execute(consulta_sql) linhas = cursor.fetchall() for linha in linhas: print("Id:", linha[0]) print("Produto:", linha[1]) print("Preço:", linha[2]) except Error as erro: print("Falha ao consultar tabela: {}".format(erro)) finally: if (con.is_connected()): cursor.close() con.close() # Programa principal if __name__=='__main__': print("Rotina para atualização de preços produtos no banco de dados") print("Entre com os dados conforme solicitado:") print("\nDigite o codigo do produto a alterar:") idProd = input("Id do Produto: ") consulta(idProd) print("\nEntre com o novo preço do produto:") precoProd = input("Preço: ") declaracao = """UPDATE tbl_produtos SET Preco = """ + precoProd + """ WHERE IdProduto = """ + idProd atualiza(declaracao) verifica = input("\nDeseja consultar a atualização? s = Sim, n = Não\n") if (verifica == 's'): consulta(idProd) else: print("\nAté mais!")
Ao executar o programa será solicitado o ID do produto cujo preço se deseja alterar. Ao informar um ID, serão mostrados os dados armazenados do produto, incluindo seu preço atual. Na sequência, o usuário deve informar o novo preço, que irá atualizar o registro na tabela de produtos.
Logo após a alteração, é perguntado ao usuário se ele quer conferir a alteração, ou se simplesmente deseja encerrar o programa.
Resultado
Veja a saída do programa ao ser executado, com o produto de ID igual a 4 tendo seu preço alterado:
No exemplo, o produto Teclado, que custava R$ 60,00, teve seu preço reajustado para R$ 65,00.
É isso aí! Na próxima lição vamos realizar a exclusão de registros da tabela usando um script em Python e a declaração SQL DELETE FROM.
Até!
Escreva um comentário