概要
特定のキーだけ更新したい場合に使えます 使用するテーブルは前回の User テーブルを使います
環境
- macOS 11.4
- Python 3.8.3
- MySQL 8.0.25
- SQLAlchemy 1.3.19
サンプルコード
user_query = User.query.filter(User.id == id)
for key, value in profile.items():
user_query.update(
{"profile": db.func.json_set(
User.profile,
"$." + key,
value)
}, synchronize_session='fetch'
)
db.session.commit()
User テーブルの profile カラムが JSON 型です その中にある key を value で更新します json_set を使うと既存のキーはそのままで指定したキーだけ更新します
update を使ってそのまま dict を指定すると上書き更新になるのでキーが消えてしまったりします
0 件のコメント:
コメントを投稿