Uppdatering till Db
I det här kapitlet lär vi oss hur man uppdaterar poster i en databas med SQLAlchemy. Att uppdatera poster är avgörande när du behöver ändra befintlig data i dina tabeller, till exempel ändra beskrivningar eller andra fält. SQLAlchemy tillhandahåller effektiva och enkla metoder för att utföra uppdateringar.
Uppdatera en enskild post
Den vanligaste uppdateringsåtgärden ä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 via dess ID använder du en fråga med ett filter för att ange önskat ID. Efter att ha uppdaterat produktens description sparas ändringarna till databasen genom att anropa 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änder du 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()
Den här koden 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.
Swipe to start coding
- Hämta alla produkter från databasen.
- Beräkna det nya priset för varje produkt genom att sänka det med 20%.
- Spara de uppdaterade priserna i databasen.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 4.76
Uppdatering till Db
Svep för att visa menyn
I det här kapitlet lär vi oss hur man uppdaterar poster i en databas med SQLAlchemy. Att uppdatera poster är avgörande när du behöver ändra befintlig data i dina tabeller, till exempel ändra beskrivningar eller andra fält. SQLAlchemy tillhandahåller effektiva och enkla metoder för att utföra uppdateringar.
Uppdatera en enskild post
Den vanligaste uppdateringsåtgärden ä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 via dess ID använder du en fråga med ett filter för att ange önskat ID. Efter att ha uppdaterat produktens description sparas ändringarna till databasen genom att anropa 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änder du 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()
Den här koden 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.
Swipe to start coding
- Hämta alla produkter från databasen.
- Beräkna det nya priset för varje produkt genom att sänka det med 20%.
- Spara de uppdaterade priserna i databasen.
Lösning
Tack för dina kommentarer!
single