Python MySQL – Excluir dados de uma tabela

Resumo : neste tutorial você aprenderá como excluir dados de uma tabela no banco de dados MySQL usando Python.

Este tutorial continua de onde o tutorial Atualização de dados em uma tabela  parou.

Para excluir dados de uma tabela de um programa Python, siga estas etapas:

  • Primeiro, conecte-se ao banco de dados criando um novo MySQLConnectionobjeto.
  • A seguir, crie um novo objeto cursor a partir do objeto Connection.
  • Em seguida, chame o execute()método do objeto cursor.
  • Depois disso, confirme as alterações chamando o commit()método do MySQLConnectionobjeto.
  • Finalmente, feche o cursor e a conexão com o banco de dados chamando  close()o método do objeto correspondente.

Excluindo programa

O exemplo a seguir mostra como excluir um livro especificado pelo ID do livro:

from mysql.connector import MySQLConnection, Error
from config import read_config

def delete_book(book_id):
    # read database configuration
    config = read_config()

    # prepare query and data
    query = "DELETE FROM books WHERE id = %s"

    data = (book_id, ) 

    affected_rows = 0  # Initialize the variable to store the number of affected rows

    try:
        # connect to the database
        with MySQLConnection(**config) as conn:
            # update book title
            with conn.cursor() as cursor:
                cursor.execute(query, data)

                # get the number of affected rows
                affected_rows = cursor.rowcount

            # accept the changes
            conn.commit()

    except Error as error:
        print(error)

    return affected_rows  # Return the number of affected rows

if __name__ == '__main__':
    affected_rows = delete_book(37)
    print(f'Number of affected rows: {affected_rows}')
Linguagem de código:  Python  ( python )

Como funciona.

Como funciona.

Primeiro, importe os módulos necessários, incluindo MySQLConnectione Errorsão classes do mysql.connectormódulo e read_configé uma função de um módulo personalizado config.

from mysql.connector import MySQLConnection, Error
from config import read_configLinguagem de código:  Python  ( python )

Segundo, defina uma função chamada delete_bookque receba um parâmetro book_id. A função lê a configuração do banco de dados e prepara uma consulta SQL para excluir o livro com o ID especificado:

def delete_book(book_id):
    # read database configuration
    config = read_config()

    # prepare query and data
    query = "DELETE FROM books WHERE id = %s"

    data = (book_id, ) Linguagem de código:  Python  ( python )

Terceiro, abra uma conexão de banco de dados ( MySQLConnection) com a configuração do arquivo de configuração e crie um cursor (cursor). Dentro da instrução aninhada with, exclua o livro especificado pelo ID e retorne o número de linhas afetadas obtidas de cursor.rowcount:

affected_rows = 0  # Initialize the variable to store the number of affected rows

    try:
        # connect to the database
        with MySQLConnection(**config) as conn:
            # update book title
            with conn.cursor() as cursor:
                cursor.execute(query, data)

                # get the number of affected rows
                affected_rows = cursor.rowcount

            # accept the changes
            conn.commit()Linguagem de código:  Python  ( python )

Quarto, exiba o erro se ele ocorrer durante a exclusão:

    except Error as error:
        print(error)Linguagem de código:  JavaScript  ( javascript )

Quinto, retorne o número de linhas afetadas:

return affected_rows  # Return the number of affected rowsLinguagem de código:  PHP  ( php )

Por fim, chame a delete_book()função para deletar o livro com id 37:

if __name__ == '__main__':
    affected_rows = delete_book(37)
    print(f'Number of affected rows: {affected_rows}')Linguagem de código:  Python  ( python )

Resumo

  • Chame o execute()método de um objeto cursor para executar a DELETEinstrução para excluir dados em uma tabela e o commit()método de um objeto de conexão para aplicar as alterações ao banco de dados.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *