Bijwerken naar DB
In dit hoofdstuk leer je hoe je records bijwerkt in een database met SQLAlchemy. Het bijwerken van records is essentieel bij het aanpassen van bestaande gegevens in je tabellen, zoals het wijzigen van beschrijvingen of andere velden. SQLAlchemy biedt efficiënte en eenvoudige methoden voor het uitvoeren van updates.
Een enkel record bijwerken
De meest voorkomende updatebewerking is het aanpassen van één record. Hiervoor moet je het object ophalen, de attributen bijwerken en vervolgens de wijzigingen opslaan.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
Om een product op te halen via zijn ID, gebruik je een query met een filter om het gewenste ID te specificeren. Na het bijwerken van de description van het product, zorgt het aanroepen van session.commit() ervoor dat de wijzigingen worden opgeslagen in de database.
Meerdere records bijwerken
Soms is het nodig om meerdere records tegelijk bij te werken. SQLAlchemy maakt het mogelijk om filter() te gebruiken met de update()-methode om records efficiënt aan te passen.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
Om producten te filteren met een prijs boven de $1000, gebruik je een query met een voorwaarde op de prijs. De update-methode past de gewenste wijzigingen toe op alle overeenkomende records, terwijl het argument synchronize_session="fetch" ervoor zorgt dat de sessie gesynchroniseerd blijft na de update.
Bulk-updates
Voor grootschalige wijzigingen zijn bulk-updates efficiënter, omdat ze database-records direct aanpassen zonder objecten in het geheugen te laden. Dit maakt ze ideaal voor het bijwerken van veel rijen tegelijk.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Deze code werkt efficiënt de description bij voor alle producten met een prijs onder de $500 in één enkele bewerking. Bulk-updates zijn sneller en besparen geheugen in vergelijking met het individueel bijwerken van records.
Swipe to start coding
- Alle producten uit de database ophalen.
- De nieuwe prijs voor elk product berekenen door deze met 20% te verlagen.
- De bijgewerkte prijzen opslaan in de database.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain the difference between updating a single record and a bulk update in SQLAlchemy?
What does the `synchronize_session` argument do in the `update()` method?
Are there any risks or things to watch out for when performing bulk updates?
Awesome!
Completion rate improved to 4.76
Bijwerken naar DB
Veeg om het menu te tonen
In dit hoofdstuk leer je hoe je records bijwerkt in een database met SQLAlchemy. Het bijwerken van records is essentieel bij het aanpassen van bestaande gegevens in je tabellen, zoals het wijzigen van beschrijvingen of andere velden. SQLAlchemy biedt efficiënte en eenvoudige methoden voor het uitvoeren van updates.
Een enkel record bijwerken
De meest voorkomende updatebewerking is het aanpassen van één record. Hiervoor moet je het object ophalen, de attributen bijwerken en vervolgens de wijzigingen opslaan.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
Om een product op te halen via zijn ID, gebruik je een query met een filter om het gewenste ID te specificeren. Na het bijwerken van de description van het product, zorgt het aanroepen van session.commit() ervoor dat de wijzigingen worden opgeslagen in de database.
Meerdere records bijwerken
Soms is het nodig om meerdere records tegelijk bij te werken. SQLAlchemy maakt het mogelijk om filter() te gebruiken met de update()-methode om records efficiënt aan te passen.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
Om producten te filteren met een prijs boven de $1000, gebruik je een query met een voorwaarde op de prijs. De update-methode past de gewenste wijzigingen toe op alle overeenkomende records, terwijl het argument synchronize_session="fetch" ervoor zorgt dat de sessie gesynchroniseerd blijft na de update.
Bulk-updates
Voor grootschalige wijzigingen zijn bulk-updates efficiënter, omdat ze database-records direct aanpassen zonder objecten in het geheugen te laden. Dit maakt ze ideaal voor het bijwerken van veel rijen tegelijk.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Deze code werkt efficiënt de description bij voor alle producten met een prijs onder de $500 in één enkele bewerking. Bulk-updates zijn sneller en besparen geheugen in vergelijking met het individueel bijwerken van records.
Swipe to start coding
- Alle producten uit de database ophalen.
- De nieuwe prijs voor elk product berekenen door deze met 20% te verlagen.
- De bijgewerkte prijzen opslaan in de database.
Oplossing
Bedankt voor je feedback!
single