Oppdatering til DB
I dette kapittelet skal vi lære hvordan man oppdaterer poster i en database ved hjelp av SQLAlchemy. Å oppdatere poster er avgjørende når du skal endre eksisterende data i tabellene dine, for eksempel ved å endre beskrivelser eller andre felt. SQLAlchemy tilbyr effektive og enkle metoder for å utføre oppdateringer.
Oppdatering av én enkelt post
Den vanligste oppdateringsoperasjonen er å endre en enkelt post. For å gjøre dette må du hente objektet, oppdatere dets attributter, og deretter lagre endringene.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
For å hente et produkt etter ID bruker du en spørring med et filter for å angi ønsket ID. Etter å ha oppdatert produktets description, vil et kall til session.commit() lagre endringene i databasen.
Oppdatering av flere poster
Noen ganger må du oppdatere flere poster samtidig. SQLAlchemy lar deg bruke filter() sammen med update()-metoden for å endre poster effektivt.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
For å filtrere produkter med pris over $1000, bruker du en spørring med en betingelse på prisen. update-metoden utfører de ønskede endringene på alle samsvarende poster, mens argumentet synchronize_session="fetch" sørger for at økten forblir synkronisert etter oppdateringen.
Masseoppdateringer
For endringer i stor skala er masseoppdateringer mer effektive, da de endrer databaseposter direkte uten å laste objektene inn i minnet. Dette gjør dem ideelle for å oppdatere mange rader samtidig.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Denne koden oppdaterer effektivt description for alle produkter med pris under $500 i én enkelt operasjon. Masseoppdateringer er raskere og sparer minne sammenlignet med å oppdatere poster individuelt.
Swipe to start coding
- Hent alle produkter fra databasen.
- Beregn ny pris for hvert produkt ved å redusere den med 20%.
- Lagre de oppdaterte prisene i databasen.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Oppdatering til DB
Sveip for å vise menyen
I dette kapittelet skal vi lære hvordan man oppdaterer poster i en database ved hjelp av SQLAlchemy. Å oppdatere poster er avgjørende når du skal endre eksisterende data i tabellene dine, for eksempel ved å endre beskrivelser eller andre felt. SQLAlchemy tilbyr effektive og enkle metoder for å utføre oppdateringer.
Oppdatering av én enkelt post
Den vanligste oppdateringsoperasjonen er å endre en enkelt post. For å gjøre dette må du hente objektet, oppdatere dets attributter, og deretter lagre endringene.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
For å hente et produkt etter ID bruker du en spørring med et filter for å angi ønsket ID. Etter å ha oppdatert produktets description, vil et kall til session.commit() lagre endringene i databasen.
Oppdatering av flere poster
Noen ganger må du oppdatere flere poster samtidig. SQLAlchemy lar deg bruke filter() sammen med update()-metoden for å endre poster effektivt.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
For å filtrere produkter med pris over $1000, bruker du en spørring med en betingelse på prisen. update-metoden utfører de ønskede endringene på alle samsvarende poster, mens argumentet synchronize_session="fetch" sørger for at økten forblir synkronisert etter oppdateringen.
Masseoppdateringer
For endringer i stor skala er masseoppdateringer mer effektive, da de endrer databaseposter direkte uten å laste objektene inn i minnet. Dette gjør dem ideelle for å oppdatere mange rader samtidig.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Denne koden oppdaterer effektivt description for alle produkter med pris under $500 i én enkelt operasjon. Masseoppdateringer er raskere og sparer minne sammenlignet med å oppdatere poster individuelt.
Swipe to start coding
- Hent alle produkter fra databasen.
- Beregn ny pris for hvert produkt ved å redusere den med 20%.
- Lagre de oppdaterte prisene i databasen.
Løsning
Takk for tilbakemeldingene dine!
single