Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Aggiornamento nel DB | Sqlalchemy
Database in Python

bookAggiornamento nel DB

In questo capitolo, verrà illustrato come aggiornare i record in un database utilizzando SQLAlchemy. L'aggiornamento dei record è fondamentale per modificare i dati esistenti nelle tabelle, come la modifica delle descrizioni o di altri campi. SQLAlchemy offre metodi efficienti e diretti per eseguire aggiornamenti.

Aggiornamento di un Singolo Record

L'operazione di aggiornamento più comune consiste nella modifica di un singolo record. Per eseguire questa operazione, è necessario recuperare l'oggetto, aggiornare i suoi attributi e quindi salvare le modifiche.

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

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

Per recuperare un prodotto tramite il suo ID, si utilizza una query con un filtro che specifica l'ID desiderato. Dopo aver aggiornato il campo description del prodotto, la chiamata a session.commit() salva le modifiche nel database.

Aggiornamento di Più Record

In alcuni casi, è necessario aggiornare più record contemporaneamente. SQLAlchemy consente di utilizzare filter() insieme al metodo update() per modificare i record in modo efficiente.

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

Per filtrare i prodotti con prezzo superiore a $1000, si utilizza una query con una condizione sul prezzo. Il metodo update applica le modifiche desiderate a tutti i record corrispondenti, mentre l'argomento synchronize_session="fetch" garantisce che la sessione rimanga sincronizzata dopo l'aggiornamento.

Aggiornamenti Massivi

Per modifiche su larga scala, gli aggiornamenti massivi risultano più efficienti poiché modificano direttamente i record nel database senza caricare gli oggetti in memoria. Questa modalità è ideale per aggiornare molte righe contemporaneamente.

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

Questo codice aggiorna in modo efficiente la descrizione di tutti i prodotti con prezzo inferiore a $500 in un'unica operazione. Gli aggiornamenti massivi sono più rapidi e consentono di risparmiare memoria rispetto all'aggiornamento individuale dei record.

Compito

Swipe to start coding

  1. Recuperare tutti i prodotti dal database.
  2. Calcolare il nuovo prezzo per ciascun prodotto riducendolo del 20%.
  3. Salvare i prezzi aggiornati nel database.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 7
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 4.76

bookAggiornamento nel DB

Scorri per mostrare il menu

In questo capitolo, verrà illustrato come aggiornare i record in un database utilizzando SQLAlchemy. L'aggiornamento dei record è fondamentale per modificare i dati esistenti nelle tabelle, come la modifica delle descrizioni o di altri campi. SQLAlchemy offre metodi efficienti e diretti per eseguire aggiornamenti.

Aggiornamento di un Singolo Record

L'operazione di aggiornamento più comune consiste nella modifica di un singolo record. Per eseguire questa operazione, è necessario recuperare l'oggetto, aggiornare i suoi attributi e quindi salvare le modifiche.

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

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

Per recuperare un prodotto tramite il suo ID, si utilizza una query con un filtro che specifica l'ID desiderato. Dopo aver aggiornato il campo description del prodotto, la chiamata a session.commit() salva le modifiche nel database.

Aggiornamento di Più Record

In alcuni casi, è necessario aggiornare più record contemporaneamente. SQLAlchemy consente di utilizzare filter() insieme al metodo update() per modificare i record in modo efficiente.

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

Per filtrare i prodotti con prezzo superiore a $1000, si utilizza una query con una condizione sul prezzo. Il metodo update applica le modifiche desiderate a tutti i record corrispondenti, mentre l'argomento synchronize_session="fetch" garantisce che la sessione rimanga sincronizzata dopo l'aggiornamento.

Aggiornamenti Massivi

Per modifiche su larga scala, gli aggiornamenti massivi risultano più efficienti poiché modificano direttamente i record nel database senza caricare gli oggetti in memoria. Questa modalità è ideale per aggiornare molte righe contemporaneamente.

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

Questo codice aggiorna in modo efficiente la descrizione di tutti i prodotti con prezzo inferiore a $500 in un'unica operazione. Gli aggiornamenti massivi sono più rapidi e consentono di risparmiare memoria rispetto all'aggiornamento individuale dei record.

Compito

Swipe to start coding

  1. Recuperare tutti i prodotti dal database.
  2. Calcolare il nuovo prezzo per ciascun prodotto riducendolo del 20%.
  3. Salvare i prezzi aggiornati nel database.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 7
single

single

some-alt