Видалення з БД
У цьому розділі розглянемо, як видаляти записи з бази даних за допомогою SQLAlchemy. Видалення записів є важливою частиною керування даними, особливо при усуненні застарілих або непотрібних елементів. SQLAlchemy надає простий, але потужний інструментарій для роботи з видаленнями як у одиночному, так і у масовому режимі.
Видалення одного запису за ID
Найпоширеніший спосіб видалення запису — це ідентифікація за певним критерієм, наприклад, за ID. Розглянемо, як видалити продукт за його ID.
product = session.query(Product).filter(Product.id == 1).first()
# Check if the product exists
if product:
# Delete the product
session.delete(product)
session.commit()
Цей код отримує продукт з ID 1, перевіряє його існування, позначає для видалення через session.delete(product)
і застосовує зміни за допомогою session.commit()
.
Видалення декількох записів
Іноді виникає потреба видалити декілька записів одночасно за певними умовами. Це корисно, наприклад, для видалення товарів, яких немає в наявності, або продуктів з ціною нижче певного порогу.
session.query(Product).filter(Product.is_in_stock == False).delete(synchronize_session="fetch")
# Commit the changes
session.commit()
Запит відбирає товари, яких немає в наявності, видаляє їх за допомогою .delete(synchronize_session="fetch")
і забезпечує синхронізацію сесії з базою даних.
Масові видалення
Для великих наборів даних масові видалення є ефективними. Цей метод напряму змінює записи у базі даних без завантаження їх у пам'ять, що економить час і ресурси.
session.query(Product).filter(Product.price < 100).delete(synchronize_session="fetch")
# Commit the changes
session.commit()
У цьому прикладі відбираються продукти з ціною нижче $100 і видаляються методом .delete()
, що забезпечує швидке та ефективне очищення великих таблиць.
Видалення всіх записів у таблиці
Якщо потрібно повністю очистити таблицю, SQLAlchemy дозволяє це зробити одним запитом.
session.query(Product).delete(synchronize_session="fetch")
# Commit the changes
session.commit()
Метод .delete(synchronize_session="fetch")
видаляє всі записи з таблиці Product
, що корисно для скидання даних або очищення тестового середовища.
Swipe to start coding
Ваше завдання — доповнити код, написавши точні рядки, необхідні для видалення продукту з назвою "Headphones"
з бази даних.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain what `synchronize_session="fetch"` does in these examples?
What happens if I try to delete a record that doesn't exist?
Are there any risks or best practices to consider when performing bulk deletions?
Awesome!
Completion rate improved to 4.76
Видалення з БД
Свайпніть щоб показати меню
У цьому розділі розглянемо, як видаляти записи з бази даних за допомогою SQLAlchemy. Видалення записів є важливою частиною керування даними, особливо при усуненні застарілих або непотрібних елементів. SQLAlchemy надає простий, але потужний інструментарій для роботи з видаленнями як у одиночному, так і у масовому режимі.
Видалення одного запису за ID
Найпоширеніший спосіб видалення запису — це ідентифікація за певним критерієм, наприклад, за ID. Розглянемо, як видалити продукт за його ID.
product = session.query(Product).filter(Product.id == 1).first()
# Check if the product exists
if product:
# Delete the product
session.delete(product)
session.commit()
Цей код отримує продукт з ID 1, перевіряє його існування, позначає для видалення через session.delete(product)
і застосовує зміни за допомогою session.commit()
.
Видалення декількох записів
Іноді виникає потреба видалити декілька записів одночасно за певними умовами. Це корисно, наприклад, для видалення товарів, яких немає в наявності, або продуктів з ціною нижче певного порогу.
session.query(Product).filter(Product.is_in_stock == False).delete(synchronize_session="fetch")
# Commit the changes
session.commit()
Запит відбирає товари, яких немає в наявності, видаляє їх за допомогою .delete(synchronize_session="fetch")
і забезпечує синхронізацію сесії з базою даних.
Масові видалення
Для великих наборів даних масові видалення є ефективними. Цей метод напряму змінює записи у базі даних без завантаження їх у пам'ять, що економить час і ресурси.
session.query(Product).filter(Product.price < 100).delete(synchronize_session="fetch")
# Commit the changes
session.commit()
У цьому прикладі відбираються продукти з ціною нижче $100 і видаляються методом .delete()
, що забезпечує швидке та ефективне очищення великих таблиць.
Видалення всіх записів у таблиці
Якщо потрібно повністю очистити таблицю, SQLAlchemy дозволяє це зробити одним запитом.
session.query(Product).delete(synchronize_session="fetch")
# Commit the changes
session.commit()
Метод .delete(synchronize_session="fetch")
видаляє всі записи з таблиці Product
, що корисно для скидання даних або очищення тестового середовища.
Swipe to start coding
Ваше завдання — доповнити код, написавши точні рядки, необхідні для видалення продукту з назвою "Headphones"
з бази даних.
Рішення
Дякуємо за ваш відгук!
single