Python SQL Server: удаление данных

В этом уроке вы узнаете, как удалять данные из таблицы SQL Server в Python.

Это руководство начинается там, где закончилось руководство по разбиению данных на страницы.

Удаление строки из таблицы

Шаг 1. Сначала создайте файл delete.py в каталоге проекта и определите функцию delete_customer():

from connect import create_connection
def delete_customer(id: int) -> int:
    # Connect to the SQL Server
    conn = create_connection()
    if conn is None:
        return 0
    # Delete the customer    
    with(conn, conn.cursor() as cursor):
        cursor.execute("DELETE FROM Customers WHERE CustomerID = %s",(id,))
        conn.commit()
        return cursor.rowcount

Как это работает.

Сначала импортируйте функцию create_connection из модуля connect.

Во-вторых, определите функцию delete_customer, которая принимает идентификатор клиента и возвращает количество удаленных строк.

def delete_customer(id: int) -> int:

В-третьих, подключитесь к SQL Server, вызвав функцию create_connection(), и верните 0, если соединение не удалось:

conn = create_connection()
if conn is None:
    return 0

В-четвертых, управляйте объектами Connection и Cursor с помощью оператора with:

with(conn, conn.cursor() as cursor):

Это устраняет необходимость закрывать объекты «Курсор» и «Подключение» вручную.

В-пятых, выполните оператор DELETE с параметром id:

cursor.execute("DELETE FROM Customers WHERE CustomerID = %s",(id,))

В-шестых, удалите данные навсегда, вызвав метод commit() объекта Connection:

conn.commit()

Наконец, верните количество удаленных строк:

return cursor.rowcount

Шаг 2. Измените модуль main.py для использования функции delete_customer:

import logging, sys
from delete import delete_customer
# config logging to console
logging.basicConfig(
    stream=sys.stdout, 
    encoding='utf-8', 
    format='%(levelname)s:%(message)s',
    level=logging.DEBUG
)
# Delete customer with id 1
try:
    row_deleted = delete_customer(1)
    logging.info(f'{row_deleted} row(s) deleted.')
except Exception as e:
    logging.error(f"Error fetching customers: {e}")
       

Как это работает.

Сначала импортируйте функцию delete_customer из модуля удаления:

from delete import delete_customer

Во-вторых, вызовите функцию delete_customer, чтобы удалить клиента с идентификатором 1:

try:
    row_deleted = delete_customer(1)
    logging.info(f'{row_deleted} row(s) deleted.')
except Exception as e:
    logging.error(f"Error fetching customers: {e}")

Шаг 3. Откройте терминал и запустите модуль main.py, чтобы удалить клиента с идентификатором 1:

python main.py

Выход:

INFO:1 row(s) deleted.

Вывод показывает, что одна строка была удалена.

Загрузите исходный код проекта

Загрузите исходный код проекта

Краткое содержание

  • Выполните оператор DELETE для удаления данных из таблицы в Python.
Мирослав С.

Автор статей, ИБ-специалист