Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Uppdatering till Db | SQLAlchemy
Databaser i Python

bookUppdatering till Db

I detta kapitel lär vi oss hur man uppdaterar poster i en databas med SQLAlchemy. Att uppdatera poster är avgörande när befintliga data i tabeller behöver ändras, till exempel beskrivningar eller andra fält. SQLAlchemy tillhandahåller effektiva och enkla metoder för att utföra uppdateringar.

Uppdatera en enskild post

Den vanligaste uppdateringsoperationen är att ändra en enskild post. För att göra detta behöver du hämta objektet, uppdatera dess attribut och sedan spara ändringarna.

product = session.query(Product).filter(Product.id == 1).first()

if product:
    product.description = "Updated description for high-end gaming laptop"
    session.commit()

För att hämta en produkt med dess ID används en fråga med ett filter för att ange önskat ID. Efter att produktens description har uppdaterats, sparas ändringarna i databasen med session.commit().

Uppdatera flera poster

Ibland behöver du uppdatera flera poster samtidigt. SQLAlchemy låter dig använda filter() tillsammans med update()-metoden för att effektivt ändra poster.

session.query(Product).filter(Product.price > 1000).update(
    {Product.description: "Updated description for premium products"}, 
    synchronize_session="fetch"
)
session.commit()

För att filtrera produkter med ett pris över $1000 används en fråga med ett villkor på priset. update-metoden tillämpar önskade ändringar på alla matchande poster, medan argumentet synchronize_session="fetch" säkerställer att sessionen förblir synkroniserad efter uppdateringen.

Massuppdateringar

För storskaliga ändringar är massuppdateringar mer effektiva eftersom de direkt ändrar databasposter utan att ladda objekt i minnet. Detta gör dem idealiska för att uppdatera många rader samtidigt.

session.query(Product).filter(Product.price < 500).update(
    {Product.description: "Generic description for affordable products"}, 
    synchronize_session="fetch"
)
session.commit()

Denna kod uppdaterar effektivt description för alla produkter med ett pris under $500 i en enda operation. Massuppdateringar är snabbare och sparar minne jämfört med att uppdatera poster individuellt.

Uppgift

Swipe to start coding

  1. Hämta alla produkter från databasen.
  2. Beräkna det nya priset för varje produkt genom att sänka det med 20%.
  3. Spara de uppdaterade priserna i databasen.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 7
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 the difference between updating a single record and a bulk update in SQLAlchemy?

What does the `synchronize_session` parameter do in the `update()` method?

Are there any risks or caveats when performing bulk updates with SQLAlchemy?

close

Awesome!

Completion rate improved to 4.76

bookUppdatering till Db

Svep för att visa menyn

I detta kapitel lär vi oss hur man uppdaterar poster i en databas med SQLAlchemy. Att uppdatera poster är avgörande när befintliga data i tabeller behöver ändras, till exempel beskrivningar eller andra fält. SQLAlchemy tillhandahåller effektiva och enkla metoder för att utföra uppdateringar.

Uppdatera en enskild post

Den vanligaste uppdateringsoperationen är att ändra en enskild post. För att göra detta behöver du hämta objektet, uppdatera dess attribut och sedan spara ändringarna.

product = session.query(Product).filter(Product.id == 1).first()

if product:
    product.description = "Updated description for high-end gaming laptop"
    session.commit()

För att hämta en produkt med dess ID används en fråga med ett filter för att ange önskat ID. Efter att produktens description har uppdaterats, sparas ändringarna i databasen med session.commit().

Uppdatera flera poster

Ibland behöver du uppdatera flera poster samtidigt. SQLAlchemy låter dig använda filter() tillsammans med update()-metoden för att effektivt ändra poster.

session.query(Product).filter(Product.price > 1000).update(
    {Product.description: "Updated description for premium products"}, 
    synchronize_session="fetch"
)
session.commit()

För att filtrera produkter med ett pris över $1000 används en fråga med ett villkor på priset. update-metoden tillämpar önskade ändringar på alla matchande poster, medan argumentet synchronize_session="fetch" säkerställer att sessionen förblir synkroniserad efter uppdateringen.

Massuppdateringar

För storskaliga ändringar är massuppdateringar mer effektiva eftersom de direkt ändrar databasposter utan att ladda objekt i minnet. Detta gör dem idealiska för att uppdatera många rader samtidigt.

session.query(Product).filter(Product.price < 500).update(
    {Product.description: "Generic description for affordable products"}, 
    synchronize_session="fetch"
)
session.commit()

Denna kod uppdaterar effektivt description för alla produkter med ett pris under $500 i en enda operation. Massuppdateringar är snabbare och sparar minne jämfört med att uppdatera poster individuellt.

Uppgift

Swipe to start coding

  1. Hämta alla produkter från databasen.
  2. Beräkna det nya priset för varje produkt genom att sänka det med 20%.
  3. Spara de uppdaterade priserna i 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 7
single

single

some-alt