Aggiornamento Nel DB
In questo capitolo, apprenderemo come aggiornare i record in un database utilizzando SQLAlchemy. L'aggiornamento dei record è fondamentale quando si modificano 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 farlo, è 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 per specificare 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
A volte è necessario aggiornare più record contemporaneamente. SQLAlchemy consente di utilizzare filter()
con il 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 sono più efficienti poiché modificano direttamente i record nel database senza caricare gli oggetti in memoria. Questo li rende ideali 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 description 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 dei record singolarmente.
Swipe to start coding
- Recupero di tutti i prodotti dal database.
- Calcolo del nuovo prezzo per ciascun prodotto riducendolo del 20%.
- Salvataggio dei prezzi aggiornati nel database.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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?
Awesome!
Completion rate improved to 4.76
Aggiornamento Nel DB
Scorri per mostrare il menu
In questo capitolo, apprenderemo come aggiornare i record in un database utilizzando SQLAlchemy. L'aggiornamento dei record è fondamentale quando si modificano 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 farlo, è 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 per specificare 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
A volte è necessario aggiornare più record contemporaneamente. SQLAlchemy consente di utilizzare filter()
con il 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 sono più efficienti poiché modificano direttamente i record nel database senza caricare gli oggetti in memoria. Questo li rende ideali 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 description 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 dei record singolarmente.
Swipe to start coding
- Recupero di tutti i prodotti dal database.
- Calcolo del nuovo prezzo per ciascun prodotto riducendolo del 20%.
- Salvataggio dei prezzi aggiornati nel database.
Soluzione
Grazie per i tuoi commenti!
single