Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6 сем / 1 / МиСПрИС_1374_1_Наволоцкий_Харитонов_Зырянов.docx
Скачиваний:
11
Добавлен:
29.03.2025
Размер:
3.55 Mб
Скачать

2.2.11. Удаление изделия

функция: delete_product - удаление изделия

-- вход:

-- 1. product_name - название изделия

-- выход: нет

-- эффекты:

-- 1. удаление изделия

-- требования:

-- 1. изделие должно существовать

def delete_product(product_name):

try:

# Удаление изделия

cursor.execute("DELETE FROM product WHERE product_name = ?", (product_name,))

rows_deleted = cursor.rowcount

if rows_deleted > 0:

print('Изделие успешно удалено.')

else:

print('Изделие с указанным названием не найдено.')

conn.commit()

except Exception as _ex:

print(f"Произошла ошибка при удалении изделия: {_ex}")

2.2.12. Удаление категории

функция: delete_category - удаление категории

-- вход:

-- 1. category_name - название категории

-- выход: нет

-- эффекты:

-- 1. удаление категории

-- требования:

-- 1. категория должна существовать

def delete_category(category_name):

try:

if is_category_exists(category_name):

# Получаем идентификатор удаляемой категории

cursor.execute("SELECT id FROM category WHERE category_name = ?;", (category_name,))

delete_id = cursor.fetchone()[0]

# Перемещаем все подкатегории удаляемой категории в категорию "неопределенные"

cursor.execute("UPDATE category SET id_parent = (SELECT id FROM category WHERE category_name = 'неопределенные') WHERE id_parent = ?", (delete_id,))

# Перемещаем все изделия удаляемой категории в категорию "неопределенные"

cursor.execute("UPDATE product SET id_category = (SELECT id FROM category WHERE category_name = 'неопределенные') WHERE id_category = ?", (delete_id,))

# Удаляем категорию

cursor.execute("DELETE FROM category WHERE id = ?", (delete_id,))

conn.commit()

print('Категория успешно удалена.')

else:

print('Указанная категория не существует.')

except Exception as _ex:

print(f"Произошла ошибка при удалении категории: {_ex}")

2.2.13. Удаление подкатегории

функция: delete_subcategory - удаление подкатегории

-- вход:

-- 1. subcategory_name - название подкатегории

-- выход: нет

-- эффекты:

-- 1. удаление подкатегории

-- требования:

-- 1. существование подкатегории

def delete_subcategory(subcategory_name):

try:

if is_category_exists(subcategory_name):

# Получаем идентификатор удаляемой подкатегории

cursor.execute("SELECT id FROM category WHERE category_name = ?", (subcategory_name,))

subcategory_id = cursor.fetchone()[0]

# Перемещаем связанные изделия в категорию "неопределенные"

cursor.execute("UPDATE product SET id_category = (SELECT id FROM category WHERE category_name = 'неопределенные') WHERE id_category = ?", (subcategory_id,))

# Перемещаем связанные подкатегории в категорию "неопределенные"

cursor.execute("UPDATE category SET id_parent = (SELECT id FROM category WHERE category_name = 'неопределенные') WHERE id_parent = ?", (subcategory_id,))

# Удаляем подкатегорию

cursor.execute("DELETE FROM category WHERE id = ?", (subcategory_id,))

conn.commit()

print('Подкатегория успешно удалена.')

else:

print('Указанная подкатегория не существует.')

except Exception as _ex:

print(f"Произошла ошибка при удалении подкатегории: {_ex}")

Соседние файлы в папке 1