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

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

Susan Sarandon
Susan Sarandon原創
2024-11-28 13:19:11377瀏覽

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

在SQLAlchemy 中執行INSERT ... ON DUPLICATE KEY UPDATE

SQLAlchemy 提供了一種簡潔的方法來執行INSERT ... ON DUPLICATE KEY UPDATE 語句。

On SQL 語句中的 DUPLICATE KEY UPDATE

要在產生的 SQL 中直接包含 ON DUPLICATE KEY UPDATE 子句,可以使用 @compiles 裝飾器。可以製作一個可編譯的函數來將所需的字串附加到 INSERT 語句中。

在 ORM 內

雖然 SQLAlchemy 本身並不支援其 ORM 中的 ON DUPLICATE KEY UPDATE ,它提供了 merge() 函數。此函數比較物件的主鍵值以確定是否應執行 UPDATE 或 INSERT。但是,merge() 僅限於主鍵。

非主鍵的替代方法

要使用非主鍵實作 ON DUPLICATE KEY UPDATE 功能,需要自訂可以建立類似 Django 的 get_or_create() 的函數。此函數檢查資料庫中是否存在實例並傳回找到的實例,如果不存在則建立一個新實例。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn