Oppdatering til DB
I dette kapittelet skal vi lære hvordan man oppdaterer poster i en database ved hjelp av SQLAlchemy. Å oppdatere poster er viktig 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å pris. 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 operasjon. Masseoppdateringer er raskere og sparer minne sammenlignet med å oppdatere poster individuelt.
Swipe to start coding
- Hent alle produkter fra databasen.
- Beregn den nye prisen 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
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 viktig 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å pris. 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 operasjon. Masseoppdateringer er raskere og sparer minne sammenlignet med å oppdatere poster individuelt.
Swipe to start coding
- Hent alle produkter fra databasen.
- Beregn den nye prisen for hvert produkt ved å redusere den med 20 %.
- Lagre de oppdaterte prisene i databasen.
Løsning
Takk for tilbakemeldingene dine!
single