在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中文網其他相關文章!