首頁 > 資料庫 > mysql教程 > 如何在 SQLAlchemy 中有效率地執行 INSERT ... ON DUPLICATE KEY UPDATE?

如何在 SQLAlchemy 中有效率地執行 INSERT ... ON DUPLICATE KEY UPDATE?

Barbara Streisand
發布: 2024-11-25 15:14:11
原創
1021 人瀏覽過

How to Efficiently Perform INSERT ... ON DUPLICATE KEY UPDATE in SQLAlchemy?

SQLAlchemy 中的重複鍵更新

問題: 是否有一種簡潔的方法來執行「INSERT ..使用SQLAlchemy 的「ON DUPLICATE KEY UPDATE」操作ORM?

答案:

SQLAlchemy 在 1.2 版之後包含 MySQL 的「ON DUPLICATE KEY UPDATE」的內建支援。若要使用此功能,請參考此處提供的解決方案:https://stackoverflow.com/a/48373874/319066

SQL語句方法:

一般情況或非MySQL 資料庫,您可以使用@compiles 裝飾器在產生的SQL 語句中包含「ON DUPLICATE KEY UPDATE」。這裡提供了一個範例:https://github.com/somada141/sqlalchemy-insert-duplicate-update

ORM方法:

SQL

AlHchemy>Alchem>Alychemy>的ORM不直接支援「關於重複密鑰更新。 」但是,對於主鍵更新,您可以使用session.merge() 函數,該函數會檢查現有記錄並相應地更新它。

非主鍵的自訂實作:

對於涉及非主鍵更新的情況,您可以建立一個類似Django 的get_or_create()的函數,該函數首先檢查現有記錄並執行更新或相應地插入。

以上是如何在 SQLAlchemy 中有效率地執行 INSERT ... ON DUPLICATE KEY UPDATE?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板