Mise à Jour Vers la BD
Dans ce chapitre, nous allons apprendre à mettre à jour des enregistrements dans une base de données à l'aide de SQLAlchemy. La mise à jour des enregistrements est essentielle lors de la modification de données existantes dans vos tables, comme le changement de descriptions ou d'autres champs. SQLAlchemy propose des méthodes efficaces et simples pour effectuer des mises à jour.
Mise à jour d’un seul enregistrement
L'opération de mise à jour la plus courante consiste à modifier un seul enregistrement. Pour cela, il est nécessaire de récupérer l'objet, de mettre à jour ses attributs, puis d'enregistrer les modifications.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
Pour récupérer un produit par son ID, utilisez une requête avec un filtre spécifiant l'ID souhaité. Après avoir modifié la description
du produit, l'appel à session.commit()
enregistre les modifications dans la base de données.
Mise à jour de plusieurs enregistrements
Il arrive parfois que vous deviez mettre à jour plusieurs enregistrements en même temps. SQLAlchemy permet d'utiliser filter()
avec la méthode update()
pour modifier efficacement les enregistrements.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
Pour filtrer les produits dont le prix est supérieur à $1000, utilisez une requête avec une condition sur le prix. La méthode update
applique les modifications souhaitées à tous les enregistrements correspondants, tandis que l'argument synchronize_session="fetch"
garantit que la session reste synchronisée après la mise à jour.
Mises à jour en masse
Pour des modifications à grande échelle, les mises à jour en masse sont plus efficaces car elles modifient directement les enregistrements de la base de données sans charger les objets en mémoire. Cela les rend idéales pour la mise à jour de nombreuses lignes simultanément.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Ce code met à jour efficacement la description de tous les produits dont le prix est inférieur à $500 en une seule opération. Les mises à jour en masse sont plus rapides et économisent la mémoire par rapport à la mise à jour individuelle des enregistrements.
Swipe to start coding
- Récupération de tous les produits depuis la base de données.
- Calcul du nouveau prix pour chaque produit en le réduisant de 20 %.
- Enregistrement des prix mis à jour dans la base de données.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
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
Mise à Jour Vers la BD
Glissez pour afficher le menu
Dans ce chapitre, nous allons apprendre à mettre à jour des enregistrements dans une base de données à l'aide de SQLAlchemy. La mise à jour des enregistrements est essentielle lors de la modification de données existantes dans vos tables, comme le changement de descriptions ou d'autres champs. SQLAlchemy propose des méthodes efficaces et simples pour effectuer des mises à jour.
Mise à jour d’un seul enregistrement
L'opération de mise à jour la plus courante consiste à modifier un seul enregistrement. Pour cela, il est nécessaire de récupérer l'objet, de mettre à jour ses attributs, puis d'enregistrer les modifications.
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
Pour récupérer un produit par son ID, utilisez une requête avec un filtre spécifiant l'ID souhaité. Après avoir modifié la description
du produit, l'appel à session.commit()
enregistre les modifications dans la base de données.
Mise à jour de plusieurs enregistrements
Il arrive parfois que vous deviez mettre à jour plusieurs enregistrements en même temps. SQLAlchemy permet d'utiliser filter()
avec la méthode update()
pour modifier efficacement les enregistrements.
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
Pour filtrer les produits dont le prix est supérieur à $1000, utilisez une requête avec une condition sur le prix. La méthode update
applique les modifications souhaitées à tous les enregistrements correspondants, tandis que l'argument synchronize_session="fetch"
garantit que la session reste synchronisée après la mise à jour.
Mises à jour en masse
Pour des modifications à grande échelle, les mises à jour en masse sont plus efficaces car elles modifient directement les enregistrements de la base de données sans charger les objets en mémoire. Cela les rend idéales pour la mise à jour de nombreuses lignes simultanément.
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
Ce code met à jour efficacement la description de tous les produits dont le prix est inférieur à $500 en une seule opération. Les mises à jour en masse sont plus rapides et économisent la mémoire par rapport à la mise à jour individuelle des enregistrements.
Swipe to start coding
- Récupération de tous les produits depuis la base de données.
- Calcul du nouveau prix pour chaque produit en le réduisant de 20 %.
- Enregistrement des prix mis à jour dans la base de données.
Solution
Merci pour vos commentaires !
single