single
DBへの更新
メニューを表示するにはスワイプしてください
この章では、SQLAlchemy を使用してデータベース内のレコードを更新する方法について説明します。レコードの更新は、テーブル内の既存データ(説明やその他のフィールドなど)を変更する際に重要です。SQLAlchemy は、効率的かつ簡単に更新を行うための方法を提供しています。
単一レコードの更新
最も一般的な更新操作は、単一レコードの修正です。これを行うには、オブジェクトを取得し、その属性を更新してから変更を保存します。
product = session.query(Product).filter(Product.id == 1).first()
if product:
product.description = "Updated description for high-end gaming laptop"
session.commit()
ID で製品を取得するには、目的の ID を指定したフィルター付きクエリを使用します。product の description を更新した後、session.commit() を呼び出すことで、変更内容がデータベースに保存されます。
複数レコードの更新
場合によっては、複数のレコードを一度に更新する必要があります。SQLAlchemy では、filter() と update() メソッドを組み合わせて効率的にレコードを修正できます。
session.query(Product).filter(Product.price > 1000).update(
{Product.description: "Updated description for premium products"},
synchronize_session="fetch"
)
session.commit()
$1000 を超える価格の製品をフィルタリングするには、価格に条件を指定したクエリを使用します。update メソッドは、該当するすべてのレコードに変更を適用し、synchronize_session="fetch" 引数によって、更新後もセッションが同期された状態に保たれます。
バルク更新
大規模な変更には、バルク更新がより効率的です。これは、オブジェクトをメモリに読み込まずにデータベースレコードを直接修正するため、多数の行を一度に更新するのに最適です。
session.query(Product).filter(Product.price < 500).update(
{Product.description: "Generic description for affordable products"},
synchronize_session="fetch"
)
session.commit()
このコードは、$500 未満の価格のすべての製品のdescriptionを一度に効率的に更新します。バルク更新は、個別にレコードを更新する場合と比べて高速でメモリ消費も抑えられます。
スワイプしてコーディングを開始
- データベースから__すべての製品__を取得します。
- 各製品の価格を20%減額して__新しい価格を計算__します。
- __更新された価格__をデータベースに保存します。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください