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方法:
SQLAlHchemy>Alchem>Alychemy>的ORM不直接支援「關於重複密鑰更新。 」但是,對於主鍵更新,您可以使用session.merge() 函數,該函數會檢查現有記錄並相應地更新它。
非主鍵的自訂實作:
對於涉及非主鍵更新的情況,您可以建立一個類似Django 的get_or_create()的函數,該函數首先檢查現有記錄並執行更新或相應地插入。
以上是如何在 SQLAlchemy 中有效率地執行 INSERT ... ON DUPLICATE KEY UPDATE?的詳細內容。更多資訊請關注PHP中文網其他相關文章!