Päivittäminen Tietokantaan
Tässä luvussa opitaan, kuinka päivitetään tietueita tietokantaan käyttäen SQLAlchemyä. Tietueiden päivittäminen on olennaista, kun halutaan muokata olemassa olevia tietoja tauluissa, kuten kuvauksia tai muita kenttiä. SQLAlchemy tarjoaa tehokkaat ja suoraviivaiset menetelmät päivitysten tekemiseen.
Yksittäisen tietueen päivittäminen
Yleisin päivitystoimenpide on yksittäisen tietueen muokkaaminen. Tämä tehdään hakemalla olio, päivittämällä sen attribuutit ja tallentamalla muutokset.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
Tuotteen hakemiseen ID:n perusteella käytetään kyselyä, jossa suodatetaan haluttu ID. Kun tuotteen description on päivitetty, kutsumalla session.commit() tallennetaan muutokset tietokantaan.
Usean tietueen päivittäminen
Joskus on tarpeen päivittää useita tietueita kerralla. SQLAlchemy mahdollistaa filter()-funktion käytön yhdessä update()-metodin kanssa tietueiden tehokkaaseen muokkaamiseen.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
Suodattaaksesi tuotteet, joiden hinta on yli $1000, käytetään kyselyä, jossa on ehto hinnasta. update-metodi tekee halutut muutokset kaikkiin ehtoihin sopiviin tietueisiin, ja synchronize_session="fetch"-argumentti varmistaa, että istunto pysyy synkronoituna päivityksen jälkeen.
Massapäivitykset
Laajamittaisiin muutoksiin massapäivitykset ovat tehokkaampia, sillä ne muokkaavat tietokannan tietueita suoraan lataamatta olioita muistiin. Tämä tekee niistä ihanteellisia, kun päivitetään useita rivejä kerralla.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Tämä koodi päivittää tehokkaasti kuvauksen kaikille tuotteille, joiden hinta on alle $500, yhdellä operaatiolla. Massapäivitykset ovat nopeampia ja säästävät muistia verrattuna yksittäisten tietueiden päivittämiseen.
Swipe to start coding
- Hae kaikki tuotteet tietokannasta.
- Laske uusi hinta jokaiselle tuotteelle vähentämällä sitä 20 %.
- Tallenna päivitetyt hinnat tietokantaan.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Päivittäminen Tietokantaan
Pyyhkäise näyttääksesi valikon
Tässä luvussa opitaan, kuinka päivitetään tietueita tietokantaan käyttäen SQLAlchemyä. Tietueiden päivittäminen on olennaista, kun halutaan muokata olemassa olevia tietoja tauluissa, kuten kuvauksia tai muita kenttiä. SQLAlchemy tarjoaa tehokkaat ja suoraviivaiset menetelmät päivitysten tekemiseen.
Yksittäisen tietueen päivittäminen
Yleisin päivitystoimenpide on yksittäisen tietueen muokkaaminen. Tämä tehdään hakemalla olio, päivittämällä sen attribuutit ja tallentamalla muutokset.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
Tuotteen hakemiseen ID:n perusteella käytetään kyselyä, jossa suodatetaan haluttu ID. Kun tuotteen description on päivitetty, kutsumalla session.commit() tallennetaan muutokset tietokantaan.
Usean tietueen päivittäminen
Joskus on tarpeen päivittää useita tietueita kerralla. SQLAlchemy mahdollistaa filter()-funktion käytön yhdessä update()-metodin kanssa tietueiden tehokkaaseen muokkaamiseen.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
Suodattaaksesi tuotteet, joiden hinta on yli $1000, käytetään kyselyä, jossa on ehto hinnasta. update-metodi tekee halutut muutokset kaikkiin ehtoihin sopiviin tietueisiin, ja synchronize_session="fetch"-argumentti varmistaa, että istunto pysyy synkronoituna päivityksen jälkeen.
Massapäivitykset
Laajamittaisiin muutoksiin massapäivitykset ovat tehokkaampia, sillä ne muokkaavat tietokannan tietueita suoraan lataamatta olioita muistiin. Tämä tekee niistä ihanteellisia, kun päivitetään useita rivejä kerralla.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Tämä koodi päivittää tehokkaasti kuvauksen kaikille tuotteille, joiden hinta on alle $500, yhdellä operaatiolla. Massapäivitykset ovat nopeampia ja säästävät muistia verrattuna yksittäisten tietueiden päivittämiseen.
Swipe to start coding
- Hae kaikki tuotteet tietokannasta.
- Laske uusi hinta jokaiselle tuotteelle vähentämällä sitä 20 %.
- Tallenna päivitetyt hinnat tietokantaan.
Ratkaisu
Kiitos palautteestasi!
single