Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Ta Bort Från DB | SQLAlchemy
Databaser i Python

bookTa Bort Från DB

I det här kapitlet utforskar vi hur man tar bort poster från en databas med SQLAlchemy. Att ta bort poster är avgörande vid hantering av data, särskilt när man behöver rensa bort föråldrade eller onödiga poster. SQLAlchemy erbjuder enkla men kraftfulla verktyg för att hantera borttagningar, både för enskilda och massoperationer.

Ta bort en enskild post via ID

Det vanligaste sättet att ta bort en post är att identifiera den med ett specifikt kriterium, såsom dess ID. Här visas hur man tar bort en produkt med hjälp av dess 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()

Koden hämtar en produkt med ID 1, verifierar dess existens, markerar den för borttagning med session.delete(product) och genomför ändringen med session.commit().

Ta bort flera poster

Ibland behöver man ta bort flera poster samtidigt baserat på specifika villkor. Detta är användbart för uppgifter som att ta bort slut i lager-artiklar eller produkter under en viss priströskel.

session.query(Product).filter(Product.is_in_stock == False).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Frågan filtrerar ut produkter som är slut i lager, tar bort dem med .delete(synchronize_session="fetch") och säkerställer att sessionen förblir synkroniserad med databasen.

Massborttagningar

För stora datamängder är massborttagningar effektiva. Denna metod ändrar poster direkt i databasen utan att ladda dem till minnet, vilket sparar tid och resurser.

session.query(Product).filter(Product.price < 100).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Detta exempel filtrerar produkter med pris under $100 och tar bort dem med .delete()-metoden, vilket ger en snabb och resurseffektiv lösning för stora tabeller.

Ta bort alla poster i en tabell

Om du behöver tömma en tabell helt gör SQLAlchemy det enkelt med en enda fråga.

session.query(Product).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Metoden .delete(synchronize_session="fetch") tar bort alla poster från tabellen Product, vilket är användbart för att återställa data eller rensa testmiljöer.

Uppgift

Swipe to start coding

Din uppgift är att komplettera koden genom att skriva de exakta raderna som behövs för att ta bort produkten med namnet "Headphones" från databasen.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 8
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 4.76

bookTa Bort Från DB

Svep för att visa menyn

I det här kapitlet utforskar vi hur man tar bort poster från en databas med SQLAlchemy. Att ta bort poster är avgörande vid hantering av data, särskilt när man behöver rensa bort föråldrade eller onödiga poster. SQLAlchemy erbjuder enkla men kraftfulla verktyg för att hantera borttagningar, både för enskilda och massoperationer.

Ta bort en enskild post via ID

Det vanligaste sättet att ta bort en post är att identifiera den med ett specifikt kriterium, såsom dess ID. Här visas hur man tar bort en produkt med hjälp av dess 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()

Koden hämtar en produkt med ID 1, verifierar dess existens, markerar den för borttagning med session.delete(product) och genomför ändringen med session.commit().

Ta bort flera poster

Ibland behöver man ta bort flera poster samtidigt baserat på specifika villkor. Detta är användbart för uppgifter som att ta bort slut i lager-artiklar eller produkter under en viss priströskel.

session.query(Product).filter(Product.is_in_stock == False).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Frågan filtrerar ut produkter som är slut i lager, tar bort dem med .delete(synchronize_session="fetch") och säkerställer att sessionen förblir synkroniserad med databasen.

Massborttagningar

För stora datamängder är massborttagningar effektiva. Denna metod ändrar poster direkt i databasen utan att ladda dem till minnet, vilket sparar tid och resurser.

session.query(Product).filter(Product.price < 100).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Detta exempel filtrerar produkter med pris under $100 och tar bort dem med .delete()-metoden, vilket ger en snabb och resurseffektiv lösning för stora tabeller.

Ta bort alla poster i en tabell

Om du behöver tömma en tabell helt gör SQLAlchemy det enkelt med en enda fråga.

session.query(Product).delete(synchronize_session="fetch")

# Commit the changes
session.commit()

Metoden .delete(synchronize_session="fetch") tar bort alla poster från tabellen Product, vilket är användbart för att återställa data eller rensa testmiljöer.

Uppgift

Swipe to start coding

Din uppgift är att komplettera koden genom att skriva de exakta raderna som behövs för att ta bort produkten med namnet "Headphones" från databasen.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 8
single

single

some-alt